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

问题描述 投票:1回答:2

laravel刀片三元运算符

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

我们可以写简短的表格

{{ $name or 'Default' }}

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

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

但这段代码

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

如何在刀片三元运算符中通过简短形式实现这一点

laravel-5.3 laravel-5.4 laravel-blade
2个回答
1
投票

如果它> 0,你想显示计数。否则你想要显示文本。

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

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


0
投票

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

您的代码将如下所示:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.