寻找适用于Blade模板的三元运算符
@if(Auth::check()) ? yes : no @endif
似乎无法让它工作
@if(Auth::check()) yes @else no @endif
假设这个例子里面没有太多内容,只是出于好奇。
寻找适用于Blade模板的三元运算符
@if(Auth::check()) ? yes : no @endif
似乎无法让它工作
@if(Auth::check()) yes @else no @endif
假设这个例子里面没有太多内容,只是出于好奇。
您可以自由地使用它,只需使用{{ }}
即可。
{{ Auth::check() ? 'yes' : 'no' }}
这个有效:
{{ Auth::check() ? 'yes' : 'no' }}
{{ Auth::check() ? '<a href=#>Logout</a>' : '<a href=login>Login</a>' }}
会原样打印。 - Volatil3{{{ }}}
,在 Laravel 5 中使用 {!! !!}
。 - Laurence{{}}
,但似乎它现在不再适用于所有情况。 - Volatil3{{ }}
用于转义输出 - 这是您99%的情况下应该使用的。只有在需要非转义输出时才应使用 {!! !!}
- 这应该非常罕见。 - Laurence我知道这个问题之前有人问过,但这可能会对某些人有所帮助。
现在在 Laravel 5 中可以做到这一点。
{{ $variable or "default" }}
5.5
中被移除,或者至少不再受支持。Taylor 建议使用 {{ $variable ?? "default" }}
,这是 PHP7 支持的(Laravel 5.5 要求使用 PHP7)。 - Laurence{{ $variable or "default" }}
在5到5.5.28版本中有效,可能是因为它们提供了向后兼容性。 - Elshan对于 Laravel 5 + php7,你应该使用空合并运算符,如此 Laravel News 文章中所解释的那样:
{{ $value ?? "Fallback" }}
在空值合并运算符出现之前,Blade使用“or”运算符来处理相同的问题,当第一个值未设置时,它允许使用默认值,并以“or”分隔。-> 在空值合并运算符出现之前,Blade使用“or”运算符来处理相同的问题,当第一个值未设置时,它允许使用默认值,并以“or”分隔。此外,这里有一个不错的快捷方式?:
,如果你需要输出某个变量的值或者它为空时输出一些默认文本。
{{ $value ?: 'Default Value' }}
核心 PHP
if(!empty($mat->getSupplier)) {
echo $mat->getSupplier->supplier_name;
}
else if(!empty($mat->request_plant) {
echo \App\PlantName::whereId($mat->request_plant)->value('name');
}
else {
echo $mat->other_supplier;
}
Laravel Blade 文件
{{ (!empty($mat->getSupplier)) ? $mat->getSupplier->supplier_name : ((!empty($mat->request_plant)) ? \App\PlantName::whereId($mat->request_plant)->value('name'): $mat->other_supplier) }}
三元条件看起来像这样: {{ condition ? '是' : '否' }}