У меня есть наблюдатель в отношениях has_many следующим образом:
Post has_many Comments
и Comments
активировал следующие Observer
:
class Observer_Comments
{
public function before_delete($model)
{
Log::info("Deleted a comment");
}
public function before_update($model)
{
Log::info("Updated a comment");
}
}
Когда я обновляю свою модель Post
следующим образом:
$post = Post::find(1)->related('comments);
unset($post->comments[1]);
$post->save();
Мой журнал не показывает никакой активности. Comment
удаляется, а Post
корректно обновляется, включая запуск любого из его наблюдателей.
Когда я удаляю комментарий явно:
$comment = Comment::find(1);
$comment->delete();
то журнал показывает, что я ожидаю:
INFO --> Deleted a Comment
Есть ли настройка cascade
, которую я должен использовать?
ОБНОВИТЬ
Я вижу этот код внутри Model::save()
:
1127 if (method_exists($rel, 'delete_related'))
1128 {
1129 $rel->delete_related($this);
1130 }
Нужно ли добавлять метод delete_related
в мою модель Post
или Comments
?