在Laravel刀片中你可以做到:
{{ $variable or 'default' }}
这将检查是否设置了变量。我从数据库中获取了一些数据,并且这些变量总是被设置,所以我不能使用这种方法。
我正在寻找速记'刀片'功能:
{{ ($variable != '' ? $variable : '') }}
很难用这篇文章或代码来做这件事,我不知道怎么用链接或类似的东西来做:
<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>
我试过了:
{{ ($school->website != '' ? '<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>' : '') }}
但是,它不起作用。并且,我希望尽可能缩短我的代码;)
有人可以向我解释一下吗?
更新
我没有使用foreach,因为我从数据库中获得了一个对象(一个学校)。我将它从我的控制器传递到我的视图:
$school = School::find($id);
return View::make('school.show')->with('school', $school);
所以,我不想围绕每个$变量(例如$ school-&gt; name)制作一个@if($value != ''){}
。
答案 0 :(得分:13)
试试这个:
@if ($value !== '')
{{ HTML::link($value,'some text') }}
@endif
答案 1 :(得分:13)
在这种情况下,我更喜欢@unless
directive的可读性。
@unless ( empty($school->website) )
<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>
@endunless
答案 2 :(得分:5)
{{ ($school->website != '' ? '<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>' : '') }}
更改为
{{ ($school->website != '') ? '<a href="' . $school->website . '" target="_blank">' . $school->website . '</a>' : '' }}
或相同的代码
{{ ($school->website != '') ? "<a href='$school->website' target='_blank'>$school->website</a>" : '' }}
答案 3 :(得分:3)
使用php 7,您可以使用null合并运算符。这是@ m0z4rt答案的简写。
{{ $variable ?? 'default' }}
答案 4 :(得分:1)
{{ isset($variable) ? $variable : 'default' }}
答案 5 :(得分:0)
我想知道为什么没人谈论$variable->isEmpty()
看起来比其他更好。可以像这样使用:
@if($var->isEmpty())
Do this
@else
Do that
@endif