我需要根据存储在其中的信息从我的数据透视表中分离记录。
所以我有三个表,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"
我只想把描述为“第三”的那个放回去。
我尝试使用分离,但这会删除所有这些:
$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 :(得分:0)
您可以使用->wherePivot()
功能过滤掉数据透视表。
$submissions[$i]->activities()->wherePivot('description', '=', $yourVal)->detach();
在您的情况下$yourVal = "Third";