Как обновить несколько таблиц с laravel Nova? - PullRequest
0 голосов
/ 06 апреля 2020

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

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

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

1 Ответ

0 голосов
/ 06 апреля 2020

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

static::updated(function ($website) {

   $ClientID = $website->client_id;

   $WebsiteID = $website->id;

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

});

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

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