Sim, mas como o @supersan afirmou acima em um comentário, se você excluir () em um QueryBuilder, o evento do modelo não será acionado, porque não estamos carregando o modelo em si, e chamamos delete () nesse modelo.
Os eventos são disparados apenas se usarmos a função de exclusão em uma Instância do Modelo.
Então, este ser disse:
if user->hasMany(post)
and if post->hasMany(tags)
para excluir as tags de postagem ao excluir o usuário, teríamos que repetir $user->posts
e chamar$post->delete()
foreach($user->posts as $post) { $post->delete(); }
-> isso acionará o evento de exclusão no Post
VS
$user->posts()->delete()
-> isso não dispara o evento de exclusão na publicação porque, na verdade, não carregamos o Post Model (apenas executamos um SQL como: DELETE * from posts where user_id = $user->id
e, portanto, o modelo Post nem sequer é carregado)
first()
na consulta para que eu pudesse acessar o modelo de evento egUser::where('id', '=', $id)->first()->delete();
Fonte