无法同步角色权限

时间:2021-03-27 15:02:46

标签: laravel

需要这方面的帮助,我正在尝试将已创建的权限同步到现有角色,但每当我仅同步权限时,它不会更新,但每当我更新角色名称和权限时,它都会同步/更新。我正在使用 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>

0 个答案:

没有答案