【发布时间】:2018-11-03 08:01:14
【问题描述】:
我有一个系统,其中用户连接到许多不同的表,这些表也连接到不同的表。当我从我的数据库中删除一个用户时,与该用户关联的每个关系也应该被删除。我的项目的关系设置如下所示
- A User user has multiple orders.
- An Order has multiple order items.
- Order Items belong to an order.
- A webshop belongs to a user and a webshop has One Main Setting.
- Main settings belongs to a webshop and has One address.
- Address belongs to main setting
当 id 为 1 的用户被删除时。所有 user_id 等于 1 的订单也应该删除,没有问题。但是user_id为1的订单也有很多order_items。比如说,这个特定订单的 id 为 3。所有 order_id 为 3 的 order_items 也应该被删除。这就是我遇到这个问题的地方。
我的尝试
这样做会删除用户
$user = User::find($id);
$user->delete();
这样做会删除关系:
$user->orders()->delete();
但是如何删除与所有被删除的订单关联的订单项目?我的尝试是:
$user->orders()->orderitems()->delete();
但不幸的是,这不起作用。 模型中的所有关系都运行良好。所以所有可用的属性都是
User
- Orders();
- Webshops();
Order
- Orderitems();
Webshop
- Mainsetting();
Mainsetting
- Address();
我怎样才能做到以上几点?
【问题讨论】:
-
看看这个 stackoverflow 答案:stackoverflow.com/questions/14174070/…
-
你可以使用
deleting事件。
标签: laravel laravel-5 laravel-4 relationship