商品とカテゴリとの多対多の関係があります。Laravel/PHP削除製品が1つ以上ある関連カテゴリ
1)製品が削除されると、ピボットテーブルとの関係も削除されます。 他のカテゴリと関連がない場合は、データベースから製品を削除したいと考えています。
2)カテゴリが削除されている場合、その関連製品も削除されます。しかし、他のカテゴリに属する人はいません。 これをどのように達成するのですか?
商品とカテゴリとの多対多の関係があります。Laravel/PHP削除製品が1つ以上ある関連カテゴリ
1)製品が削除されると、ピボットテーブルとの関係も削除されます。 他のカテゴリと関連がない場合は、データベースから製品を削除したいと考えています。
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');
関連製品は製品テーブルから削除されます。
削除時カスケードがピボットテーブルでジョブを実行していないか、間違っている可能性があります。 1つの製品が多くのカテゴリに属しています。他のカテゴリに属していない場合にのみ製品テーブルから製品を削除します。category_productピボットテーブル。 $ table-> integer( 'categories_id') - > unsigned(); $ table-> integer( 'products_id') - > unsigned(); ( 'cascade') - > onUpdate( 'cascade'); $ table-> foreign( 'categories_id') - >参照( 'id' –