1
A
回答
0
由于获取返回集合
0
只是删除的get()获取单个用户数据
$user = Auth:user();
dd($user);
在这种情况下的get()方法返回用户采集对象
0
您可以通过以下方式验证用户数据:
$user = Auth::user(); instead of using get();
Your user id is: {{ $user->id }}
Your first name is: {{ $user->first_name }}
Your last name is: {{ $user->last_name }}
+0
虽然你的问题确实解决了答案,但它也没有给出任何解释,为什么这是这种情况(在问题中特别要求) – milo526
2
其他答案要么解释如何解决你的问题,但不正确的原因为什么发生这种情况。
的laravel文档状态(source):
的
get
方法返回一个Illuminate\Support\Collection
包含结果,其中每个结果是PHPStdClass
对象的实例。
从本质上讲,get
函数在此返回一个集合而不是User
对象。 QueryBuilder
上的get方法执行select语句。
通过下面的代码片段,我们可以看到什么查询得到执行。
DB::enableQueryLog();
Auth::user()->get();
dump(DB::getQueryLog());
DB::enableQueryLog();
Auth::user()->where('id', 1)->get();
dump(DB::getQueryLog());
第一个查询确实将输出预期的用户,第二个查询将抓住用户类从Auth::user()
和选择该表中的所有行。
当我们执行第3和第4个查询,我们可以看到,我们再次先取得预期的用户,第四查询但的确也得到了用户(在这种情况下,ID为1的用户)。这也是由于where
,而不是Auth::user()
。
我们可以从这些结果得出结论是,GET考虑到所有查询生成器功能,但不提供的类的参数。 如果您在对象上使用get,它只会考虑该对象的Class。
过于解决您的问题,其他的问题,正确的地方,你可以使用:
$user = Auth::user();
来获取用户。
相关问题
- 1. Laravel 4.2 |手动auth用户
- 2. 使用Auth填充Laravel表单::用户
- 3. Laravel Entrust返回auth用户角色
- 4. 加入其他表Auth ::用户Laravel 4
- 5. Laravel Auth修改两种用户
- 6. 避免加盟时Auth用户laravel 5
- 7. Laravel Auth注销恶意用户
- 8. Laravel 5.3在Auth中更改用户表
- 9. Auth以名称或用户名Laravel 5.2
- 10. Laravel Multi-Auth @auth语法
- 11. user auth Laravel 5.2
- 12. Laravel Auth :: check()
- 13. Laravel auto auth?
- 14. Laravel 5 - O-Auth
- 15. Laravel Auth Issue
- 16. Laravel Auth :: attemp()不起作用
- 17. Laravel,使用auth和auth.basic
- 18. laravel auth模型子帐户用户登录
- 19. auth用户名
- 20. Laravel 5.2化妆:AUTH
- 21. laravel Auth :: check()失败
- 22. laravel restfull api与Auth
- 23. Laravel 5.2 api routes auth
- 24. Laravel 5.4 Multi auth - Auth :: guard() - > user()empty
- 25. Laravel 5.3 Auth :: login和Auth :: loginUsingId undefined
- 26. 对用户以外的表名使用Auth laravel
- 27. 使用laravel进行社交认证的用户Auth
- 28. Laravel 5.3使用Auth用户上传图像:: create
- 29. 用户如何退出Laravel 5.3s Auth实现?
- 30. Laravel 5.1 Auth在会话中取回用户名?
刚刚删除' - > get();' – Onix