Передать модель Eloquent в качестве параметра события - PullRequest
0 голосов
/ 30 марта 2019

Чего я пытаюсь достичь?

Я хочу передать существующий экземпляр модели 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

Какое отношение это имеет к другим пользователям?

Я ищу, правильно ли я передаю красноречивые модели. Как они должны пройти (или это просто синтаксическая / логическая ошибка с моей стороны?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...