Чего я пытаюсь достичь?
Я хочу передать существующий экземпляр модели Eloquent событию. В этом случае модель называется Call
, а событие называется AssignNewCall
. Когда вызывается функция assignUser($user)
, я хочу запустить событие.
Как я сейчас пытаюсь это сделать?
Модель: Call (использует событие AssignNewCall)
/**
* Constructor for Call model.
*/
public function __construct(array $attributes)
{
parent::__construct($attributes);
if (isset($this->assignedTo) && $this->assignedTo != null) $this->assignedTo = array();
}
/**
* Adds user->id to model and fire event.
*/
public function assignUser($user) {
if($this->assignedTo != null) array_push($this->assignedTo, $user->id);
else $this->assignedTo = array($user->id);
event(new AssignNewCall($this));
}
Событие: AssignNewCall (используется модель вызова)
public $call;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(Call $call)
{
$this->call = $call;
}
Какой результат я получу?
Когда событие вызывается в конце assignUser
, создается впечатление, что конструктор модели запускается.
Too few arguments to function App\Models\Main\Call::__construct(), 0 passed in /home/vagrant/code/cad/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php on line 84 and exactly 1 expected
Какое отношение это имеет к другим пользователям?
Я ищу, правильно ли я передаю красноречивые модели. Как они должны пройти (или это просто синтаксическая / логическая ошибка с моей стороны?)