首页 > 解决方案 > 获取错误方法 Illuminate\Database\Eloquent\Collection::getKey 不存在。在laravel中,如何解决?

问题描述

在使用委托在laravel中分配角色期间,我收到错误

方法 Illuminate\Database\Eloquent\Collection::getKey 不存在。我的代码是:


    $record = new User();
    $data = $request->all();
    $record->fill($data);
    $record->save();
    $roles = [1, 3]
    $role = Role::whereIn('id', $roles)->get();
    $record->attachRole($role);

标签: laravelentrust

解决方案


您正在使用attachRole,它用于将单个角色附加到用户。

您想使用attachRoles将多个角色附加到用户。


所以在你的情况下:

$record = new User();
$record->fill($request->all());
$record->save();

$roles = Role::whereIn('id', [1, 3])->get();
$record->attachRoles($roles);

推荐阅读