Ich versuche, die Beziehungen der Beziehungen eines Modells zu löschen. Wenn das irgendeinen Sinn ergibt?Löschen Sie die Beziehungen der Beziehungen in Laravel 5.2
$post->comments()->activities()->delete();
Also mein Post-Modell hat Kommentare und Kommentare haben Aktivitäten. Jedes Mal, wenn ich versuche, dies auszuführen, ich diesen Fehler:
Call to undefined method Illuminate\Database\Query\Builder::activities()
Ich weiß, dass dies funktioniert:
$post->load('comments.activities');
foreach ($post->comments as $comment) {
$comment->activities()->delete();
$comment->delete();
}
Aber ich denke, die erste Lösung sieht sauberer. Weiß jemand, warum das nicht funktioniert? Vielen Dank.
bearbeiten
Die Beziehung Methode in Post-Modell (polymorphe weil es Kommentare auf der Post und Kommentare zu Kommentaren).
public function comments()
{
return $this->morphMany('App\Models\Comment', 'commentable');
}
Die Beziehung Methoden in Kommentar-Modell (polymorph, weil ich Aktivitäten auf mehrere Modelle verwenden).
public function activities()
{
return $this->morphMany('App\Models\Activity', 'subject');
}
u die Methode in Routen erklärt haben? –
@Vicky Ich glaube nicht, Routen Methoden haben etwas mit diesem Problem zu tun. –
können wir Ihre Beziehungsmethoden Ihres Modells sehen? – huuuk