Как проверить идентификатор, который я использовал из таблицы, которая связана с другими несколькими таблицами? - PullRequest
0 голосов
/ 23 октября 2018

Когда я хочу удалить строку из таблицы, я хочу проверить таблицы, которые используют идентификатор этой строки.Если используется, то не позволяет удалить.

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

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

https://laravel.com/docs/5.7/eloquent#events

Если вы создаете наблюдателя для своей модели, вы можете использовать что-то вроде этого:

public function deleting($model)
{
    if($model->someRelation->count()) {    // replace ->someRelation with whatever you want to check
        return false;   // prevent delete
    }
    if($model->anotherRelation->count()) {
        return false;   // prevent delete
    }
}
0 голосов
/ 23 октября 2018

Вы можете просто проверить, является ли конкретный столбец (содержащий ключ другой таблицы) в строке пустым или нулевым, и если он пустой, то удалите строку, в противном случае пропустите ее.У вас есть два способа сделать это:

  1. , используя eloquent, получить строку по первичному ключу и проверить свойство коллекции.
  2. написать хранимую процедуру в базе данных и вызватьэто в вашем коде Laravel.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...