Как обновить несколько таблиц с помощью Laravel Nova?

У меня есть три таблицы: клиенты, заказы и сайты. На веб-сайте есть поле ownTo, которое принадлежит client_id из таблицы "clients". Мне может потребоваться изменить client_id для веб-сайта, который отлично работает с laravel Nova. В моем случае мне также нужно автоматически изменять client_id для определенного website_id в таблице заказов всякий раз, когда я меняю client_id веб-сайта.

Короче говоря, всякий раз, когда я меняю владельца веб-сайта, все заказы, сделанные для веб-сайта в таблице "заказы", ​​должны быть обновлены для нового владельца. Я могу сделать это с помощью laravel, но с Nova я потерялся.

Заранее спасибо.

1 ответ

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

static::updated(function ($website) {

   $ClientID = $website->client_id;

   $WebsiteID = $website->id;

   Order::where('website_id', $WebsiteID)
           ->update(['client_id' => $ClientID]);

});

Или же это можно решить, создав таблицу Observer для веб-сайта и реализовав тот же процесс, используя обновленную функцию.

Другие вопросы по тегам