2016-05-07 16 views
1

商品とカテゴリとの多対多の関係があります。Laravel/PHP削除製品が1つ以上ある関連カテゴリ

1)製品が削除されると、ピボットテーブルとの関係も削除されます。 他のカテゴリと関連がない場合は、データベースから製品を削除したいと考えています。

2)カテゴリが削除されている場合、その関連製品も削除されます。しかし、他のカテゴリに属する​​人はいません。 これをどのように達成するのですか?

答えて

2

あなたが使用したいdetach()

$user->roles()->detach([1, 2, 3]); 

そしてon delete cascade:あなたがCategoriesテーブルからすべてのカテゴリを削除するので、もしあなたがあなたの子供(製品)テーブルにON DELETE CASCADEを設定することができます第二の要件については

$table->foreign('user_id') 
     ->references('id')->on('users') 
     ->onDelete('cascade'); 
+0

削除時カスケードがピボットテーブルでジョブを実行していないか、間違っている可能性があります。 1つの製品が多くのカテゴリに属しています。他のカテゴリに属していない場合にのみ製品テーブルから製品を削除します。category_productピボットテーブル。 $ table-> integer( 'categories_id') - > unsigned(); $ table-> integer( 'products_id') - > unsigned(); ( 'cascade') - > onUpdate( 'cascade'); $ table-> foreign( 'categories_id') - >参照( 'id' –

0

関連製品は製品テーブルから削除されます。

関連する問題