2017-08-29 157 views
0

我需要根據存儲在其中的信息從我的數據透視表中分離記錄。如何刪除基於數據透視表信息的多對多關係

所以我有三個表1)活動2)activity_submissions 3)提交

一個活動可以有很多意見,並提交一個可以有很多活動,他們共用一個多對多的關係。現在有一個問題:activity_submissions表中也有一個描述列。

這是activity_submissions表:

id | activity_id | submission_id | desription 

所以,我有三個記錄如下:

1 | 20 | 1 | "First" 
2 | 20 | 1 | "Second" 
3 | 20 | 1 | "Third" 

我只想reove一個與說明 「第三」。

我試着用分離,但刪除所有的人:

$activity=\App\Activity::find(20); 
$submissions=$activity->submissions()->where('submission_id','=','1')->get(); 
for($i=0; $i<$submissions->count(); $i++){ 
    if ($submissions[$i]->pivot->description == "Third"){ 
     $submissions[$i]->activities()->detach(); 
    } 
} 

但這種代碼分離我所有的記錄,我怎麼會去這樣做?我正在使用Laravel 5.0。

回答

0

您可以使用->wherePivot()函數來過濾數據透視表。

$submissions[$i]->activities()->wherePivot('description', '=', $yourVal)->detach(); 

在你的情況$yourVal = "Third";

相關問題