Mar*_*ten 19 php laravel blade
在Laravel刀片中,您可以:
{{ $variable or 'default' }}
Run Code Online (Sandbox Code Playgroud)
这将检查是否设置了变量.我从数据库中获取了一些数据,并且这些变量总是被设置,所以我不能使用这种方法.
我正在寻找一个速记'刀片'功能来执行此操作:
{{ ($variable != '' ? $variable : '') }}
Run Code Online (Sandbox Code Playgroud)
很难用这篇文章或代码来做这件事,我不知道怎么用链接或类似的东西来做:
<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>
Run Code Online (Sandbox Code Playgroud)
我试过了:
{{ ($school->website != '' ? '<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>' : '') }}
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.并且,我希望尽可能缩短我的代码;)
有人可以向我解释一下吗?
UPDATE
我没有使用foreach,因为我从数据库中获得了一个对象(一个学校).我把它从我的控制器传递到我的视图:
$school = School::find($id);
return View::make('school.show')->with('school', $school);
Run Code Online (Sandbox Code Playgroud)
所以,我不想@if($value != ''){}围绕每个$变量(如$ school-> name).
sor*_*deh 14
试试这个:
@if ($value !== '')
{{ HTML::link($value,'some text') }}
@endif
Run Code Online (Sandbox Code Playgroud)
Jef*_*ett 14
在这种情况下,我更喜欢该@unless指令的可读性.
@unless ( empty($school->website) )
<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>
@endunless
Run Code Online (Sandbox Code Playgroud)
{{ ($school->website != '' ? '<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>' : '') }}
Run Code Online (Sandbox Code Playgroud)
改成
{{ ($school->website != '') ? '<a href="' . $school->website . '" target="_blank">' . $school->website . '</a>' : '' }}
Run Code Online (Sandbox Code Playgroud)
或相同的代码
{{ ($school->website != '') ? "<a href='$school->website' target='_blank'>$school->website</a>" : '' }}
Run Code Online (Sandbox Code Playgroud)
使用php 7,您可以使用null合并运算符。这是@ m0z4rt答案的简写。
{{ $variable ?? 'default' }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42588 次 |
| 最近记录: |