私は2つのテーブルを持っています。表reports
Laravelのピボットテーブルの行を削除
report_id | user_id | item_id
とreports_messages
report_id | user_id | item_id | messages
私はreport_id
reports
上のすべての関連する行を削除する場合も削除されるようにreports_messages
でreport_id
をマッチングされたいです。
public function destroy($report_id){
Report::destroy($report_id);
ReportMessages::find(1)->reports()->where('report_id',$report_id)->delete();
return redirect()->route('user.ports');
この削除にここに設立されたこのソリューションを試してみた。この関係
public function reports(){
return $this->belongsTo('App\Report');
}
public function item(){
return $this->belongsTo('App\Item', 'item_id', 'id');
}
レポートモデルで
public function reportedItem(){
return $this->belongsTo('App\Item');
}
public function user(){
return $this->hasOne('App\User', 'id', 'user_id');
}
を持っている私のReportMessagesモデルで
reports
のみ。ピボットテーブル内の関連するreport_idは削除されません。
ありがとうございました。私はこのエラーを持っています。定義されていないメソッドを呼び出す\データベース\クエリ\ビルダー::デタッチ() ' – user5996816
私は自分の答えを更新しましたが、実際にはピボットテーブルはありません... – Jerodev
ああ、神。そして私はピボットテーブルでそれをやろうとしていました。それらは実際にはモデルによってのみリンクされています。愚かな私。助けてくれてありがとう! – user5996816