设置角色 spatie/laravel-permission 的权限

set permission to role spatie/laravel-permission

我正在尝试使用此库并为我的用户设置权限。我正在阅读文档并创建了我的角色。我将我的数组设置为名称输入。

@foreach ($allPermission as $permission)
                    <div class="col-md-2">
                      <label class="form-check-label mr-4" for="{{ $permission->id }}">{{ $permission->name }}</label>
                      <input class="form-check-input" name="permission[]" type="checkbox" id="{{ $permission->id }}" value="{{ $permission->name }}">
                    </div>
                  @endforeach

在我的控制器中,我收到了这个:

Array ( [0] => show [1] => create [2] => destroy )

我正在尝试设置此权限:

$user = User::where("id", $id)->update([
                                    'name'      => $request->get('name'),
                                    'email'     => $request->get('email'),
                                    'password'  => \Hash::make($request->get('password')),
                                ]);
            
            // update permissions to user
            $user->givePermissionTo($request->get('permission'));

这个returns...

Call to a member function givePermissionTo() on int

我正在尝试使用 ID 和名称设置权限,但出现相同的错误。

$user = User::where("id", $id)->update([
                                    'name'      => $request->get('name'),
                                    'email'     => $request->get('email'),
                                    'password'  => \Hash::make($request->get('password')),
                                ]);

return$user已更新count records(你的$user不是合集)

您可以使用:

$user = User::find($id);

然后

$user->givePermissionTo($request->get('permission'));