将口才模型传递给事件

时间:2019-03-30 17:10:40

标签: php laravel events eloquent

我要实现什么目标?

我想将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

这与其他用户有什么关联?

我要寻找的是我是否正确传递了雄辩的模型。应该如何传递它们(或者就我而言,这仅仅是语法/逻辑错误?)

0 个答案:

没有答案