【问题标题】:Laravel 5.7 LeftJoin Delete Row From Both TablesLaravel 5.7 LeftJoin 从两个表中删除行
【发布时间】:2019-01-02 22:33:28
【问题描述】:

我一直在寻找从 Laravel 5.7 中的连接表中删除一些行的方法。我有三个表(库存、车辆和 Vimages),我想将它们全部连接在一起并一起删除行。有谁知道这是否可行?

我尝试这样做的原因是因为 VehiclesInventories 表具有一对一的关系,只有 Inventories 表具有使用的 id对车辆进行排序(经销商 ID)。因此,我可以使用 dealer 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

【问题讨论】:

  • 你的数据库模型怎么样?车辆和库存表之间是否存在外键关系?

标签: php database laravel eloquent


【解决方案1】:

如果您将外键约束与级联删除一起使用,则可以实现此目的。 Eloquent 支持这一点,但您需要在迁移中进行如下设置。

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

【讨论】:

    猜你喜欢
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 2019-07-23
    相关资源
    最近更新 更多