通过laravel中的用户模型获取图片url

Meh*_*ran 1 php laravel

我正在尝试在用户模型中创建一个规则,以检查用户图像是否存在,如果存在则返回完整的图像 url,我正在这样做,但不在 foreach($users as $user) 循环中工作.

    public function Image(){
    $image = $this->user->image;
    if(empty($image)){
    $image = asset('images/profile/no-image.png');
    }else{
    $image = asset('images/profile/no-image.png');
    }
    return $image;
    }
Run Code Online (Sandbox Code Playgroud)

tra*_*fox 6

如果您将该功能放在朋友模型上,则将其移至您的用户模型。然后使函数像这样:

public function Image()
{
    if ($this->image) {
        return asset('images/profile/' . $this->image);
    } else {
        return asset('images/profile/no-image.png');
    }
}
Run Code Online (Sandbox Code Playgroud)

但我建议你使用laravel Accessor

public function getImageAttribute($value)
{
    if ($value) {
        return asset('images/profile/' . $value);
    } else {
        return asset('images/profile/no-image.png');
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以通过你的模型获取图像属性:

foreach($friends as $friend) {
    {{ $friend->user->image }}
}
Run Code Online (Sandbox Code Playgroud)