需要这方面的帮助,我正在尝试将已创建的权限同步到现有角色,但每当我仅同步权限时,它不会更新,但每当我更新角色名称和权限时,它都会同步/更新。我正在使用 Spatie 角色和权限。
这是我的角色控制器
public function update(Request $request)
{
$request->validate([
'name' => 'required|unique:roles',
]);
$role = Role::findOrFail($request->id);
$role->name = $request->name;
$role->save();
$role->syncPermissions($request->permissions);
return redirect()->route('pages.role.edit', $role->id);
}
这是我的表格
<form class="needs-validation" novalidate action="{{ route('pages.role.update') }}"
method="POST">
@csrf
<div class="form-row">
<div class="col-md-12 mb-4">
<label for="validationCustom01">Role Name</label>
<input type="hidden" name="id" value="{{ $role->id }}">
<input type="text" name="name" class="form-control" id="validationCustom01"
placeholder="Name"
value="{{ $role->name }}" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-12 mb-4">
<label for="validationCustom03">Permissions</label>
<select class="form-control tagging" name="permissions[]" id="permissions"
multiple="multiple">
@foreach($permissions as $permission)
<option
value="{{ $permission->name }}"
@if ($role->permissions->pluck('id')->contains($permission->id)) selected @endif
>{{ $permission->name }}</option>
@endforeach
</select>
</div>
</div>
<button class="btn btn-primary mt-3" type="submit">Submit</button>
</form>