私には、Show
とEpisode
という2つのモデルがあり、1対多数の関係があります。私はObserverを持って、それぞれのモデルが削除されたときに見て、いくつかのタスクを実行するようにしています。私はこのようになります[email protected]()
方法に変更した場合、Eloquent Observerが発砲しない
<?php
/**
* Listen to the Show deleting event.
*
* @param Show $show
* @return void
*/
public function deleting(Show $show)
{
if ($show->isForceDeleting()) {
foreach ($show->episodes()->onlyTrashed()->get() as $episode) {
$episode->forceDelete();
}
} else {
$show->episodes()->delete();
}
}
しかし:このすべてが正常に動作し、カスケードダウンは、EpisodeObserver
がショーと一緒に削除され、各Episode
ために、そのdeleting()
方法を発射するように私のShowObserver
に見える場合Episode
sがforceDeleted取得んが起動しません:
<?php
/**
* Listen to the Show deleting event.
*
* @param Show $show
* @return void
*/
public function deleting(Show $show)
{
if ($show->isForceDeleting()) {
$show->episodes()->onlyTrashed()->forceDelete();
} else {
$show->episodes()->delete();
}
}
が間違っている程度$show->episodes()->onlyTrashed()->forceDelete();
何かがあるのか、これは潜在的にバグですか?