我要实现什么目标?
我想将Eloquent模型的现有实例传递给事件。在这种情况下,模型称为Call
,事件称为AssignNewCall
。调用函数assignUser($user)
时,我想触发该事件。
我目前如何尝试?
模型:通话(使用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
这与其他用户有什么关联?
我要寻找的是我是否正确传递了雄辩的模型。应该如何传递它们(或者就我而言,这仅仅是语法/逻辑错误?)