【问题标题】:How to Update multiple tables with laravel Nova?如何使用 laravel Nova 更新多个表?
【发布时间】:2020-04-06 05:12:22
【问题描述】:
我有三个表,即客户、订单和网站。该网站有一个属于“客户”表中的 client_id 的字段。我可能需要更改适用于 laravel Nova 的网站的 client_id。在我的情况下,每当我更改网站的 client_id 时,我还需要自动更改订单表中特定 website_id 的 client_id。
简而言之,每当我更改网站所有者时,“订单”表中为该网站所做的所有订单都需要更新为新所有者。我可以用 laravel 做到这一点,但用 Nova 我迷路了。
【问题讨论】:
标签:
php
laravel
laravel-nova
【解决方案1】:
可以使用 Eloquent 的事件来解决。
在这种情况下:在更新网站表时,创建一个更新事件。
更新网站时将调用此事件。使用更新查询通过更新 Orders 表中特定网站的 clientID 来解决这些更改。
static::updated(function ($website) {
$ClientID = $website->client_id;
$WebsiteID = $website->id;
Order::where('website_id', $WebsiteID)
->update(['client_id' => $ClientID]);
});
否则这可以通过为网站表创建一个观察者并使用更新的函数实现相同的过程来解决。