Php 有没有更好的方法可以通过Laravel获取当前登录用户的个人资料图像?
目前,我正在尝试创建一个元素,该元素将包含用户的用户名和配置文件图像。到目前为止,我已经提出了一个可行的解决方案,但我想知道是否有更好的选择 我的解决方案:Php 有没有更好的方法可以通过Laravel获取当前登录用户的个人资料图像?,php,laravel,Php,Laravel,目前,我正在尝试创建一个元素,该元素将包含用户的用户名和配置文件图像。到目前为止,我已经提出了一个可行的解决方案,但我想知道是否有更好的选择 我的解决方案: <li> <img src='{{url("storage/uploads/profile_pictures/".Auth::user()- >profile_picture)}}'> <p>{{ Auth::user()->username }}</p>
<li>
<img src='{{url("storage/uploads/profile_pictures/".Auth::user()-
>profile_picture)}}'>
<p>{{ Auth::user()->username }}</p>
</li>
我建议改为在用户模型中编写函数或模型 大概是这样的:
class User extends Authenticatable
{
// ...
public function profileImagePath()
{
return url("storage/uploads/profile_pictures/" . $this->profile_picture);
}
}
你会这样使用它:
<img src='{{auth()->user()->profileImagePath()}}'>
YUP每次都会调用DB,如果你只在一个地方使用它,没有问题,但是如果在一个以上的地方,你应该考虑把配置文件图片URL放在SeStudi.imo中,你不应该在你的视图中运行函数。相反,从控制器发送数据,然后在视图文件中使用。它不会每次调用DB。已验证的用户将在请求期间保存。这是否有助于提高性能?它看起来确实更清晰。从性能上看,它不是更好,只是更易于维护。但性能不应该是一个问题-您不会像前面有人评论的那样,每次调用auth->user时都执行额外的查询。