laravel - 拉拉维尔 | Auth::user()->id 在 AppServiceProvider 中不起作用
问题描述
当我将其放入任何控制器时,我可以获得 Auth ID
Auth::user()->id
但是当我把它放在 AppServiceProvider.php 中时,它会返回“试图获取非对象的属性 'id'
我不明白为什么?
Eddit:我试过了,但还是不行
public function boot()
{
view()->composer('*', function ($view)
{
if (Auth::check())
{
$id=Auth::user()->id;
$idd=Person::where('user_id','=',$id)->get('photo');
$view->with('idd', $idd );
$view->with('id', $id );
}
});
}
错误:传递给 Illuminate\Database\Grammar::columnize() 的参数 1 必须是数组类型,给定字符串,调用
解决方案
要获取当前经过身份验证的用户 ID,请使用
Auth::id();
另一种情况可能是没有当前用户,在这种情况下Auth::user()
返回 NULL。将代码包装在一个
if (Auth::check())
{
// Do stuff
}
确保有用户登录。
推荐阅读
- python - 之后无法在本地运行 PySpark 代码
- python - 如何在以元组为键的字典上使用具有默认值的 get 函数?
- javascript - Leafletjs 地图缓存
- conv-neural-network - 我已经看到许多 CNN 使用许多过滤器,例如这些 [8,16,32,64,128,256,512] 等。有人可以解释为什么选择这些吗?
- azure - 将 Azure Pipeline 配置为从 Github 托管存储库中提取
- nestjs - 使用nestjs有条件地禁用控制器端点并使用配置服务中的值删除导出
- javascript - 跟踪给定的打印数量命令
- javascript - 用于多个用户输入的表单验证的 JavaScript
- vba - 在列中找到正确的重复值并根据 2 个标准(值和日期)剪切粘贴发现重复的行
- python - SQLITE 数据库错误“sqlite3.OperationalError:没有这样的表:表”