我有一个 '角色' 表:如何在Laravel中使用级联删除?
$table->increments('id');
$table->string('name')->unique();
$table->text('description')->nullable();
和 'Roles_Users' 表:
$table->increments('id');
$table->integer('role_id')->unsigned()->index()->foreign()->references("id")->on("roles")->onDelete("cascade");
$table->integer('user_id')->unsigned()->index()->foreign()->references("id")->on("users")->onDelete("cascade");
当我跑这么一行:
Role::where('name','someString')->delete();
只有相关的行Roles表将被删除,而Roles_Users表中的相关行则不会被删除。解决办法是什么?
对于这种事情,我更喜欢创建外键并设置“Cascade”。例如,如果您需要直接通过SQL删除记录或在其他应用程序中访问数据库,则数据将保持其完整性。 –