我一直在寻找在Laravel 5.7中从联接表中删除一些行的方法。我有三个表(Inventory,Vehicles和Vimages),我想将它们全部连接在一起并一起删除行。有人知道这是否可能吗?
我尝试执行此操作的原因是因为车辆和库存表具有一对一的关系,只有“库存”表具有使用的ID对车辆进行排序(经销商ID )。因此,我可以从具有经销商ID 的清单中选择多辆车并将其删除,但是我无法对Vehicles表进行相同的操作。
谢谢
我的加入:
Inventory::leftJoin(
'vehicles', 'vehicles.id', '=', 'inventories.vehicle_id'
)->leftJoin(
'vimages', 'vimages.inventory_id', '=', 'inventories.id'
)->where(
'inventories.dealer_id', '=', \Auth::user()->dealer_id
答案 0 :(得分:2)
如果在级联删除中使用外键约束,则可以实现此目的。 Eloquent支持此功能,但您需要按以下步骤在迁移中进行设置。
$table->foreign('vehicle_id')->references('id')->on('vehicles')->onDelete('cascade');