Laravel 5.7 LeftJoin Удалить строку из обеих таблиц - PullRequest
0 голосов
/ 03 января 2019

Я искал способы удаления некоторых строк из соединенных таблиц в Laravel 5.7. У меня есть три таблицы (инвентаризации, транспортные средства и изображения), и я хочу объединить их все вместе и удалить строки вместе. Кто-нибудь знает, возможно ли это?

Причина, по которой я пытаюсь это сделать, заключается в том, что в таблице Транспортные средства и Запасы есть отношение один к одному, причем только в таблице Запасов есть идентификатор, который используется для сортировки. транспортные средства ( идентификатор дилера ). Таким образом, я могу выбрать несколько транспортных средств из инвентаря с идентификатором дилера и удалить их, но я не могу сделать то же самое с таблицей Транспортные средства.

Спасибо

Мое присоединение:

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 голосов
/ 03 января 2019

Если вы используете ограничение внешнего ключа с каскадным удалением, вы можете достичь этого. Eloquent поддерживает это, но вы должны настроить это в своих миграциях следующим образом.

$table->foreign('vehicle_id')->references('id')->on('vehicles')->onDelete('cascade');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...