У меня есть три модели: User
has-many Post
has-many Comment
. Когда я удаляю пользователя, я хочу, чтобы все его связанные сообщения автоматически удалялись, а также комментарии, связанные с этими сообщениями. Для этого у меня есть следующий код в моделях User
и Post
:
// User
protected static function boot() {
parent::boot();
static::deleting(function($user) {
$user->posts()->delete();
});
}
// Post
protected static function boot() {
parent::boot();
static::deleting(function($post) {
$post->comments()->delete();
});
}
Когда я удаляю пользователя, все его сообщения удаляются, однако комментарии сохраняются. Почему это происходит?
->onDelete('cascade');
- person Achraf Khouadja   schedule 03.06.2016onDelete('cascade')
- person Alex Lomia   schedule 03.06.2016boot()
вашей моделиPost
у вас есть$user
в качестве параметра обратного вызова. Необходимо изменить на$post
. - person Jonathon   schedule 03.06.2016