2017-08-27 4 views
1

私は多くの製品を持っているかもしれません。したがって、ピボットテーブル(product_visit)には、 id、product_id、visit_id、qtdおよびamountの各フィールドがあります。Laravel 5.4 - ピボットテーブルから特定のレコードを削除する

ピボットテーブル上の訪問とその関連レコードを削除するには、すべてが正常に動作します:

public function getVisitDelete($id){ 
    $visits = Visit::find($id); 
    $visits->products()->detach(); 
    $visits->delete(); 
} 

しかし、私はデタッチまたは類似のものを使用して、ピボットテーブルから一つの特定のレコードを削除する方法を見つけ出すことができませんでした。だから私は次のことを終えた:

私はこのソリューションに満足しています。

答えて

1

wherePivot()メソッドを使用して、特定の製品を訪問から切り離すことができます。 Laravel docs「アタッチ/デタッチ」セクションで説明したよう

$visits = Visit::find($visit_id); 
$visits->products()->wherPivot('product_id','=',$product_id)->detach(); 

更新 、あなたはdetach()方法で削除したい関連モデルのidを渡すことができます。例

$visits = Visit::find($id); 
$visits->products()->detach($product_id); 
+0

完璧に機能しました!ありがとう、@ jaysingkar –

関連する問題