Laravel/PHP从一个或多个相关类别中删除产品


Laravel/PHP Delete Product from One or More Related Category

产品和类别之间存在多对多关系。

1) 如果一个产品被删除,它与数据透视表的关系也会被删除。我想从数据库中删除产品,以防它和任何其他类别无关。

2) 如果某个类别被删除,其相关产品也将被删除。但不属于任何其他类别的人。我该如何做到这一点。

您想要使用detach():

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

on delete cascade:

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

对于第二个需求,您可以将ON DELETE CASCADE设置为您的子(产品)表,因此如果您从Categories表中删除任何类别,则相关产品将从products表中删除。