0
我有两个表。表reports
在Laravel中删除数据透视表中的行
report_id | user_id | item_id
和reports_messages
report_id | user_id | item_id | messages
我想,当我在reports
删除report_id
这reports_messages
匹配report_id
所有相关行太删除。
在我ReportMessages型号我有这个关系
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');
}
到目前为止,我已经试过这个解决方案在这里建立在SO
public function destroy($report_id){
Report::destroy($report_id);
ReportMessages::find(1)->reports()->where('report_id',$report_id)->delete();
return redirect()->route('user.ports');
这将删除仅在reports
..不会删除数据透视表中的相关report_id。 }
谢谢。我有这个错误'调用未定义的方法Illuminate \ Database \ Query \ Builder :: detach()' – user5996816
我更新了我的答案,你实际上没有一个数据透视表... – Jerodev
哦,天啊。我试图用数据透视表来做。它们实际上只与模型相关联。傻我。谢谢您的帮助! – user5996816