dongou1970
2017-01-26 15:06
浏览 100
已采纳

删除Laravel中数据透视表中的行

I have two tables. Table reports

report_id | user_id | item_id

and reports_messages

report_id | user_id | item_id | messages

I want when I delete report_id on reports all related rows which matching report_id in reports_messages to be deleted too.

In my ReportMessages Model I have this relation

public function reports(){
    return $this->belongsTo('App\Report');
}

public function item(){
    return $this->belongsTo('App\Item', 'item_id', 'id');
}   

In Report model

public function reportedItem(){

    return $this->belongsTo('App\Item');
}

public function user(){
    return $this->hasOne('App\User', 'id', 'user_id');
}

So far I've tried this solution founded here on 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');

This deletes only in reports.. doesn't delete related report_id's in pivot table. }

图片转代码服务由CSDN问答提供 功能建议

我有两张桌子。 表 reports </ code> </ p>

  report_id |  user_id |  item_id 
 </ code> </ pre> 
 
 

reports_messages </ code> </ p>

  report_id |  user_id |  item_id | 消息
 </ code> </ pre> 
 
 

我想删除 report </ code>上的 report_id </ code>所有与 report_id <匹配的相关行 / code> in reports_messages </ code>也将被删除。</ p>

在我的ReportMessages模型中我有这种关系</ p>

  公共函数报告(){
返回$ this-&gt; belongsTo('App \ Report'); 
} 
 
公共函数项(){
返回$ this-&gt; belongsTo('App \ Item')  ,'item_id','id'); 
} 
 </ code> </ pre> 
 
 

在报表模型中</ p>

  public function reportedItem  (){
 
返回$ this-&gt; belongsTo('App \ Item'); 
} 
 
公共函数user(){
返回$ this-&gt; hasOne('App \ User',  'id','user_id'); 
} 
 </ code> </ pre> 
 
 

到目前为止,我已尝试在此处创建此解决方案</ p> <n pre> public function destroy($ report_id){ Report :: destroy($ report_id); ReportMessages :: find(1) - &gt; reports() - &gt; where('report_id', $ report_id) - &gt; delete(); 返回redirect() - &gt; route('user.ports'); </ code> </ pre> \ n

仅在 reports </ code>中删除..不会删除数据透视表中的相关report_id。 } </ p> </ div>

2条回答 默认 最新

相关推荐 更多相似问题