php - Laravel 为什么 $request->user() 关系不能正常工作?
问题描述
我很少有 $request->user->load() 关系:
Route::middleware(['auth:api','request.log'])->get('/user', function (Request $request) {
return $request->user()->load('accesses');
});
Route::get('settings', function (Request $request) {
return $request->user()->load('settings');
});
Route::get('logs', function (Request $request) {
return $request->user()->load('logs');
});
但由于某种原因,第一个关系(“访问”)不能正常工作。我在用户登录后立即调用此路由以获取用户信息和他对不同站点模块的访问。它正确返回用户信息,但访问始终为空。此外, $this->id 不适用于此关系的模型内部,而适用于其他关系。我该如何解决?
与问题的关系
public function accesses()
{
if (!($this->hasOne(UserAccesses::class)->exists())) {
$accesses = new UserAccesses();
$accesses->user_id = Auth::id(); // $this->id don't work for some reason
$accesses->disk = true;
$accesses->mail = true;
$accesses->calendar = true;
$accesses->photos = true;
$accesses->contacts = true;
$accesses->save();
}
return $this->hasOne(UserAccesses::class);
}
几乎相同的关系可以正常工作
public function settings()
{
if (!($this->hasOne(UserSettings::class)->exists())) {
$settings = new UserSettings();
$settings->user_id = $this->id;
$settings->backup_password = '';
$settings->backup_email = '';
$settings->codeword = '';
$settings->security_notifications = 0;
$settings->password_changed_at = null;
$settings->two_step_authentication = 0;
$settings->save();
}
return $this->hasOne(UserSettings::class);
}
解决方案
推荐阅读
- c - 共享对象符号包含
- c# - CSVHelper 动态对象写入 CsvFile
- python - 变量已分配但返回“名称错误”
- react-native - React Native 与 axios 收到警告 [未处理的承诺拒绝:错误:请求失败,状态码 401]
- delphi - Delphi 组件属性声明
- java - 返回具有 AVL 树给定范围内所有元素的 LinkedList
- mysql - MySQL 查询 (SELECT) 的问题
- firebase - 在颤振应用程序中更新日期
- r - 如何根据条件更改列表中多个数据框中的列名称?
- reactjs - 使用其他钩子时 usePrevious 可靠吗?