Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有没有更好的方法可以通过Laravel获取当前登录用户的个人资料图像?_Php_Laravel - Fatal编程技术网

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时都执行额外的查询。