Laravel 4.2 刀片:检查是否为空

新手上路,请多包涵

在 Laravel blade 中你可以这样做:

 {{ $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->name)周围创建一个 @if($value != ''){}

原文由 Marten 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 246
2 个回答

尝试这个:

 @if ($value !== '')
    {{ HTML::link($value,'some text') }}
@endif

原文由 soroush gholamzadeh 发布,翻译遵循 CC BY-SA 3.0 许可协议

在这种情况下,我更喜欢 @unless 指令 的可读性。

 @unless ( empty($school->website) )
    <a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>
@endunless

原文由 Jeff Puckett 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏