我在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?
答案 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' )}})">