Мое приложение имеет Category
модель.Каждый Category
может иметь много Subcategories
, поэтому каждый Subcategory
belongsTo
a Category
.Из модели Subcategory
:
public function category()
{
return $this->belongsTo('App\Category');
}
С другой стороны, есть модель Friend
.Теперь каждая пара Friend/Subcategory
соединена через сводную таблицу friend_score
:
id | friend_id | subcategory_id | score
Из модели Subcategory
:
/**
* The friend scores that belong to the subcategory.
*/
public function friends()
{
return $this->belongsToMany('App\Friend', 'friend_score')->withPivot('score');
}
Из модели Friend
:
/**
* The subcategory scores that belong to the friend.
*/
public function subcategories()
{
return $this->belongsToMany('App\Subcategory', 'friend_score')->withPivot('score');
}
Когда я удаляю подкатегорию, Eloquent автоматически и правильно удаляет записи из таблицы friend_score для этого subcategory_id
.
Когда я удаляю категорию, она правильно удаляет подкатегориикоторые принадлежат этому category_id
.Тем не менее, в этом случае связанные друг с другом значения остаются в базе данных.
Как мне сделать так, чтобы при удалении категории дочернее_значение для каждой дочерней подкатегории?
Я знаю, что мог бы вручнуюитерируйте их и удаляйте, но мне интересно, есть ли способ сделать это автоматически посредством отношений модели.