Как обновить несколько таблиц с помощью 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 для веб-сайта и реализовав тот же процесс, используя обновленную функцию.