Laravel Blade中的三元

LeB*_*eau 50 ternary-operator laravel blade

寻找刀片模板的三元运算符

@if(Auth::check()) ? yes : no @endif
Run Code Online (Sandbox Code Playgroud)

似乎无法让它工作这项工作

@if(Auth::check()) yes @else no @endif
Run Code Online (Sandbox Code Playgroud)

假设这个例子没有多少,只是好奇.

Mar*_*lln 83

您可以随意使用它{{ }}.

{{ Auth::check() ? 'yes' : 'no' }}
Run Code Online (Sandbox Code Playgroud)


Lau*_*nce 49

这有效:

{{ Auth::check() ? 'yes' : 'no' }}
Run Code Online (Sandbox Code Playgroud)

  • 您需要允许转义输入.在Laravel 4中使用`{{{}}}`,在Laravel 5中使用`{!! !}` (2认同)
  • `{{ }}` 用于转义输出 - 99% 的情况下您应该使用它。你应该只使用`{!! !!}` 当你想要非转义输出时 - 这应该是非常罕见的 (2认同)

Bry*_*yce 25

我知道这个问题刚才被问过,但这可能对某人有所帮助.

您现在可以在Laravel 5中执行此操作.

{{ $variable or "default" }}
Run Code Online (Sandbox Code Playgroud)

Laravel 5刀片模板

Laravel 5.2刀片模板

  • 仅供参考-这将在Laravel 5.5中删除-或至少不再受支持。泰勒说要使用`{{$ variable?“ default”}}`受PHP7支持(5.5要求) (3认同)

vit*_*itr 14

另外,这是一个很好的快捷方式?:,如果你需要打印一些变量的值,或者它是否为空的一些默认文本

{{ $value ?: 'Default Value' }}
Run Code Online (Sandbox Code Playgroud)


Cha*_*had 7

对于Laravel 5 + php7,您应该使用此Laravel News文章中所述的null合并运算符,如下所示:

{{ $value ?? "Fallback" }}
Run Code Online (Sandbox Code Playgroud)

在使用null合并运算符之前,Blade使用“或”运算符处理了相同的问题,该运算符在未设置第一个值时允许使用默认值,并用“或”分隔。