Получение ошибки Метод Illuminate \ Database \ Eloquent \ Collection :: getKey не существует. в laravel, как это исправить? - PullRequest
0 голосов
/ 06 февраля 2020

При назначении ролей в laravel с помощью entrust я получаю ошибку

Метод 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);

1 Ответ

1 голос
/ 06 февраля 2020

Вы используете attachRole , который используется для прикрепления одной роли к пользователю.

Вы хотите использовать attachRoles для присоединения нескольких ролей к пользователю.


Итак, в вашем случае:

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

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