Laravel background-image:url返回1

时间:2016-05-27 10:12:46

标签: php laravel assets blade

我在Laravel中制作了一个Web应用程序。我有以下代码段:

<div class="user-info" style="background-image:url({{ asset(Auth::user()->partner->background) or '/images/default/background1.jpg'}})">

这是HTML中的结果:

<div class="user-info" style="background-image:url(1)">

我应该得到的是数据库中的以下内容:

images/backgrounds/HRVl7TXkAxlhASj14vAV.png

这很奇怪,因为如果我执行以下操作:

{{dd(Auth::user()->partner->background)}}

它实际上dd()来自数据库的文件名images/backgrounds/HRVl7TXkAxlhASj14vAV.png。当我把它放在background-image中时,为什么它回显1而不是文件名:url?

2 个答案:

答案 0 :(得分:2)

尝试

{!! "'".asset(Auth::user()->partner->background)."'" or '/images/default/background1.jpg'!!}

修改

有点乱,但应该有效

{!! Auth::user()->partner && Auth::user()->partner->background ? "'".asset(Auth::user()->partner->background)."'" : '/images/default/background1.jpg' !!}

我建议您在User中为此功能编写单独的方法 像这样:

public function background()
{
    // your awesome logic
    return $pathToBackground;
}

然后:

<div class="user-info" style="background-image:url('{!! asset(Auth::user()->background()) !!}');" >

答案 1 :(得分:0)

   <div class="user-info" style="background-image:url({{ asset(($background=Auth::user()->partner->background) ? $background :'/images/default/background1.jpg' )}})">