【发布时间】:2016-12-15 15:50:43
【问题描述】:
我正在编写一些 Laravel Blade 模板,并且我的模型可能包含空对象。我非常想尝试获取对象属性,如果有错误,只需返回 null。
所以不必写这个:
@if ($model->child_object_that_may_be_null)
{{ $model->child_object_that_may_be_null->interesting_property }}
@endif
我可以这样写:
{{ $model->child_object_that_may_be_null->interesting_property }}
如果子对象为空,则结果为空。
我只想对我的刀片模板执行此操作,而不是应用程序中的任何地方(例如,我仍然希望在控制器中得到错误)。
有没有一种简单的方法可以做到这一点?我也真的不想每次都在刀片模板中尝试/捕获异常。
基本上,当我不在乎我的孩子为 null 时,我试图让刀片模板更容易/更短地编写,如果它为 null,那么它不存在的属性也应该为渲染部分的 null .
【问题讨论】:
-
您可以使用三元组,这是我通常所做的,并将其全部包含在单个
{{ }}与使用@if块中 -
@Pitchinnate,是的,这有点短,但我还是要写条件。我很懒,根本不想检查:-)
-
在 PHP 7 中使用
??运算符;{{ $model->property ?? 'default' }}
标签: php laravel laravel-5 laravel-blade