В Laravel Observer не отслеживаются красноречивые события, такие как созданные, обновленные, удаленные - PullRequest
0 голосов
/ 02 января 2019

У меня есть пользователь модели, потому что я вставляю большую часть записей, но наблюдатель не работает в этом сценарии, он не обнаружит событие создания, обновления, удаления, но если я использую команду создания, это отлично подойдет для любой другой работы.Если кто-то поможет в этом сценарии, это будет высоко ценится.

Модель приложения / User.php

$raw_data = [
    [
        'name' => 'stackoverflow'
    ],
    [
        'name' => 'stackoverflow1'
    ],

];

User::insert($raw_data);

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Как сказал @ salah , вы не можете запускать события при выполнении массовых операций.В качестве обходного пути вы можете попробовать:

$raw_data = [
    [
        'name' => 'Jane Doe'
    ],
    [
        'name' => 'John Doe'
    ],
];

collect($raw_data)
    ->each(function ($data) {
        User::create($data);
    });
0 голосов
/ 02 января 2019

Это потому, что сохраненные и обновленные события не запускаются (при массовых обновлениях). Пожалуйста см. документ :

При выпуске массового обновления через Eloquent события обновленной модели не будут запущены для обновленных моделей. Это связано с тем, что модели никогда не извлекаются при массовом обновлении.

Ничего не поделаешь. Если вы не используете цикл для создания.

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