jeudi 26 janvier 2017

Delete rows in pivot table in 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. }



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire