Laravel 5.7 LeftJoin从两个表中删除行

时间:2019-01-02 22:33:28

标签: php database laravel eloquent

我一直在寻找在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

1 个答案:

答案 0 :(得分:2)

如果在级联删除中使用外键约束,则可以实现此目的。 Eloquent支持此功能,但您需要按以下步骤在迁移中进行设置。

$table->foreign('vehicle_id')->references('id')->on('vehicles')->onDelete('cascade');