php - 在 laravel 中调用 null 上的成员函数 users()
问题描述
我正在尝试添加数据,但出现错误 Call to a member function users() on null 它工作正常我不知道我的代码有什么问题我什至没有更改我的代码。
当用户未登录但我的用户也已登录时,我知道它的错误,我正在使用邮递员测试 api。
这是我的控制器代码:
DB::beginTransaction();
try{
$request->request->add(['created_by' => Auth::user()->id]);
$group = Group::where('name', $request->get('name'))->first();
$group->users()->attach($request->get('group_members', [])); // error on this line users()
DB::commit();
return response([
'status' => true,
'message' => 'Group added',
], 200);
} catch(\Exception $ex) {
DB::rollback();
return response([
'status' => false,
'message' => __('messages.validation_errors'),
'errors' => $ex->getMessage(),
], 500);
}
我的路线:
Route::middleware('jwt.auth')->group(function() {
Route::post('add_group', "GroupController@addGroup");
});
我的组模型:
public function users()
{
return $this->belongsToMany('App\Models\Users\User', 'group_members');
}
我的用户模型:
public function groups()
{
return $this->belongsToMany('App\Group', 'group_members');
}
我的邮递员身体要求:
{
"name": "Steve",
"group_members": [4,6]
}
正如我所说,代码没有任何变化,它在一天前工作正常。
您的帮助将不胜感激。谢谢
解决方案
您正在使用 JWT-Auth,因此您需要在 app/config.php 中将您的 Api 驱动程序设置为“jwt”,然后您可以使用访问当前用户
$user = JWTAuth::parseToken()->authenticate()
不要忘记在您的请求中将令牌作为授权标头传递。
推荐阅读
- azure - 无法访问 Microsoft Graph 列表消息 API
- java - 正则表达式提取具有此模式的文本
- java - Java LocalDateTime 在不同的服务器上给出不同的输出。相同时区配置
- python - Pytest:测试具有不同全局变量的方法
- angular - Angular8 ngx-bootstrap 不能用 --prod 编译
- python-3.x - 在虚拟环境中的 jupyter notebook 中访问 python Flask 时出现 ModuleNotFoundError
- csv - 无法将 csv 表 DATEs 列导入 BigQuery
- java - 为什么在 Java 中的 Float 数据类型中存储一个本质上是整数的文字值,最后没有'f'不会给出错误?
- javascript - 使用 z-index 在功能上设置“显示:块”后,无法在页面内容顶部的屏幕上居中 div?
- javascript - 仅在嵌入的 YouTube 视频上保留进度条和控件?