laravel - 获取错误方法 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);
解决方案
您正在使用attachRole,它用于将单个角色附加到用户。
您想使用attachRoles将多个角色附加到用户。
所以在你的情况下:
$record = new User();
$record->fill($request->all());
$record->save();
$roles = Role::whereIn('id', [1, 3])->get();
$record->attachRoles($roles);
推荐阅读
- reactjs - 如何处理 React 和 Express App 中的类型?
- wso2 - 如何在 WSO2 API Manager 3.0.0 中配置和查看 API 统计信息?
- json - 如何使用 Prepros 缩小 JSON?
- javascript - 如何正确地将获取的 API 响应注入到表中
- android - 将焦点设置在列表视图布局的父级上
- c++ - 使用指向基类的指针来访问派生类,反之亦然
- html - 打印 html 时,让 div 完全覆盖最后一页
- c# - 仅选择具有多个包含的 mvc linq 查询中的某些字段
- powershell - 如果用户还不是 A 组的成员并且也不是 B 组的成员,则 Powershell 将用户添加到 A 组
- javascript - React - 加载页面一次调用所有 onClicks,然后单击按钮什么也不做