Auth::user()
我通过几乎每个页面上的对象使用当前经过身份验证的用户。我的users
桌子有很多 polls
。
现在每次我想收到我的用户Auth::user()->polls
Laravel 的相关民意调查时都会对数据库执行查询。
有没有办法制作 - 或注入的地方 -Auth::user()
对象渴望加载相关的民意调查和其他相关的东西?
Auth::user()
每次使用时,该函数都会返回相同的用户对象。它不会每次都返回数据库再次获取用户。
所以当你第一次调用 Auth::user()->polls 时,它会查询数据库来获取他们的投票。然后在您调用它的其余时间,您正在从对象中检索民意调查(对象将民意调查数据保存在其模型上)。所以这可能不是一个大问题,因为无论您使用多少次,它只需要一次数据库调用即可获得民意调查。
要回答您将如何执行此操作的问题:Auth
外观返回 class 的对象Illuminate\Auth\Guard
。您需要创建一个扩展该类的新类,然后覆盖该user()
方法以使用民意调查检索用户。您可以查看该课程以了解有关其工作原理的更多信息,Taylor 非常擅长评论代码并向您展示发生了什么,因此您可以在需要时进行更改。