Blade的OR语句总是回显默认值

时间:2018-04-09 01:03:58

标签: php laravel laravel-5.1 blade

我有一个在PHP 5中运行良好的代码。但是我更新了我的系统,现在我使用的是PHP 7.问题发生在每个使用or语句的Blade代码中,而变量不是直接的从对象中读取。在这种情况下,Blade始终回显默认值。

例如:

{{$obj->customer->state->name or '-'}}

PHP 5中的结果:

Santa Catarina

PHP 7中的结果:

-

我正在使用Laravel 5.1,并且存储在DB中的所有数据对于两个结果都是相同的。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

{{$obj->customer->state->name ?? '-'}}

这是PHP 7中的一项新功能

http://php.net/manual/en/migration70.new-features.php#migration70.new-features.null-coalesce-op

答案 1 :(得分:0)

你应该试试这个

{{isset($obj->customer->state->name) ? $obj->customer->state->name : '-'}}