Laravel - softDelete установить нулевое отношение - PullRequest
0 голосов
/ 07 февраля 2020

Есть ли способ установить внешний ключ дочернего отношения равным нулю, когда вы мягко удаляете родителя? Я покажу пример ниже.

User
id | name | country | deleted_at
1    James  USA       2020-02-07 11:20:50

Profile
id | user_id | profession
1    1        Chef     

user_id по-прежнему остается, несмотря на то, что он мягко удален, поэтому мне сложно установить условия, когда значение столбца должно быть нулевым. Я не знаю, если это ошибка с Laravel.

1 Ответ

1 голос
/ 07 февраля 2020

Вы можете переписать метод boot пользовательской модели, когда вы мягко удаляете пользователя, установите для user_id значение NULL:

protected static function boot() {
    parent::boot();

    static::deleting(function($user) {
        $user->profile()->update(['user_id' => null]);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...