Ich habe zwei Tabellen. Tabelle reports
Löschen Sie Zeilen in Pivot-Tabelle in Laravel
report_id | user_id | item_id
und reports_messages
report_id | user_id | item_id | messages
ich will, wenn ich report_id
auf reports
alle zugehörigen Zeilen löschen, die report_id
in reports_messages
passend zu gelöscht werden.
In meinem ReportMessages Modell Ich habe diese Beziehung
public function reports(){
return $this->belongsTo('App\Report');
}
public function item(){
return $this->belongsTo('App\Item', 'item_id', 'id');
}
In Report-Modell
public function reportedItem(){
return $this->belongsTo('App\Item');
}
public function user(){
return $this->hasOne('App\User', 'id', 'user_id');
}
Bisher habe ich diese Lösung hier SO gegründet habe versucht, auf
public function destroy($report_id){
Report::destroy($report_id);
ReportMessages::find(1)->reports()->where('report_id',$report_id)->delete();
return redirect()->route('user.ports');
Dies löscht nur in reports
.. löscht nicht verwandte report_id's in Pivot-Tabelle. }
Danke. Ich habe diesen Fehler 'Call to undefined Methode Illuminate \ Database \ Query \ Builder :: detach()' – user5996816
Ich aktualisierte meine Antwort, Sie haben eigentlich keine Pivot-Tabelle ... – Jerodev
Oh, Gott. Und ich versuchte es mit einem Pivot-Tisch. Sie sind wirklich nur durch Modelle verbunden. Wie dumm von mir. Danke für die Hilfe! – user5996816