三元运算符排序语法不能在laravel刀片中工作

时间:2017-03-23 09:51:13

标签: laravel-5.3 laravel-5.4 laravel-blade

laravel blade三元运算符

 {{ isset($name) ? $name : 'Default' }}

我们可以写简短的表格

{{ $name or 'Default' }}

但它在实现时返回布尔值,如:

 {{$videos->count() or 'no video' }} //if count return 1 always, 

但是这段代码

  {{ $videos->count()}} // return 4

如何通过刀片三元运算符中的缩写形式实现这一点

2 个答案:

答案 0 :(得分:1)

如果是>您想要显示计数0.否则你想要显示文字。

count()始终为not null(0或更高)。所以你想要做的是:

{{$videos->count() > 0 ? $vides->count() : 'no video'}}

答案 1 :(得分:0)

当您使用PHP 7.1时,您可以使用新的Null Coalescing Operator。 所有PHP 7的新功能都可以在文档中找到: http://php.net/manual/en/migration70.new-features.php

您的代码将如下所示:

{{$videos->count() ?? 'no video' }}

文档中有关于运算符的详细说明:

  

对于需要与isset()一起使用三元组的常见情况,添加了空合并运算符(??)作为语法糖。它返回第一个操作数(如果存在且不为NULL);否则它返回第二个操作数。