Laravel 5.4从相关表中删除表行和行

时间:2017-06-07 21:20:43

标签: php laravel-5.4 relationships

当我从groups表中删除一行时,我希望该函数还删除表group_user中的所有关系映射。例如,如果我删除ID为4的组,则group_user表中包含group_id 4的所有行也将被删除。表格如下:

 Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->string('phone');
            $table->boolean('approved')->default(false);
            $table->rememberToken();
            $table->timestamps();
        });
 Schema::create('groups', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->integer('course_id');
            $table->timestamp('start_date')->nullable();
            $table->timestamp('end_date')->nullable();
            $table->timestamps();
        });
  Schema::create('group_user', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id');
            $table->integer('group_id');
            $table->timestamps();
        });

目前在组控制器中使用此功能,但它只从组表中删除:

function deleteGroup($id){
		$group = Group::find($id);
		$group->delete();
		return redirect()->back();
	}

1 个答案:

答案 0 :(得分:1)

如果您的表存储引擎类型是innodb,您可以尝试迁移以设置正确的关系,所有这些都将在数据库层中完成。

font-family="'DejaVu Sans',Verdana,Geneva,sans-serif"