Эй, ребята, я перепробовал слишком много вещей и прочитал некоторые блоги или обсуждения. Я не решил свою проблему. Я новичок в laravel этом проекте. Я получаю сообщение об ошибке, когда хочу обновить роль этой ошибки, например
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or
update a child row: a foreign key constraint fails
(`shop`.`permission_role`, CONSTRAINT
`permission_role_permission_id_foreign` FOREIGN KEY (`permission_id`)
REFERENCES `permissions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
(SQL: insert into `permission_role` (`permission_id`, `role_id`)
values (9, 17))
моя миграция
public function up()
{
Schema::create('roles', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('title')->nullable();
$table->timestamps();
});
Schema::create('permissions', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('title')->nullable();
$table->timestamps();
});
Schema::create('role_user', function (Blueprint $table) {
$table->integer('role_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->foreign('role_id')
->references('id')
->on('roles')
->onDelete('cascade')
->onUpdate('cascade');
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade')
->onUpdate('cascade');
$table->primary(['role_id','user_id']);
});
Schema::create('permission_role', function (Blueprint $table) {
$table->integer('role_id')->unsigned();
$table->integer('permission_id')->unsigned();
$table->foreign('role_id')
->references('id')
->on('roles')
->onDelete('cascade')
->onUpdate('cascade');
$table->foreign('permission_id')
->references('id')
->on('permissions')
->onDelete('cascade')
->onUpdate('cascade');
$table->primary(['permission_id','role_id']);
});
}
мой контроллер
public function store(Request $request)
{
$role=Role::create([
'name'=>$request['name'],
'title'=>$request['title'],
]);
$role->permissions()->sync($request->input(['permission_id']));
return redirect(route('role.index'));
}
представление:
<select name="permission_id[]" id="" multiple >
@foreach($permissions as $permission)
<option value="{{$permission->id}}"> {{$permission->title}} </option>
@endforeach
</select>