Laravel Blade模板尝试获取非对象的属性时如何返回null而不是ErrorException - php

我正在编写一些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时,我试图使刀片模板的编写更容易/更短,如果它为null,则其不存在的属性对于渲染部分也应该为null。

参考方案

您可以将array_get用作:

{{ array_get($model, 'child_object_that_may_be_null.interesting_property') }}

array_get函数使用“点”符号从深度嵌套的数组中检索值。

注意-它仅适用于Laravel的模型对象

Laravel 5错误报告抑制 - php

在Laravel 4中,抑制E_NOTICE消息很容易;我似乎无法做到这一点,因为如果我添加error_reporting(E_ALL ^ E_NOTICE) 它只是被覆盖的任何地方。这似乎发生在这里:(index.php)$response = $kernel->handle( $request = Illuminate\Http\Request::…

检查对象是否已在集合中-Laravel - php

当我循环一系列不同的结果时,我希望将对象添加到新集合中。查询:$osRed = Item::where('category', 'Hardware') ->where(function ($query) { $query->where('operating_system', '…

Laravel-foreach局部变量正在覆盖全局变量 - php

今天,我面临一个非常奇怪的问题。我有一个控制器,将从该控制器向视图sections thread和threads发送三个变量。在我看来,我正在使用foreach循环遍历所有部分,如下所示:@foreach($sections as $i => $section) 对于每个部分,我都将创建一个div并给出如下的ID:id="{{ $thread…

Laravel-使用雄辩的语言在开始日期和结束日期之间选择行 - php

我想将此查询转换为雄辩的laravel,select * from schedule where (now() between start_date and end_date); 我尝试使用whereBetween,但是出现了一些错误。$schedule = Schedule::whereBetween(Carbon::now(), ['start…

PHP Laravel从另一个驱动器读取文件 - php

我目前正在学习Laravel。我想知道是否有一种方法可以在Laravel中使用Storage::从另一个硬盘访问文件(使用Windows)。例如,我在驱动器C:上安装了带有Laravel的Xampp,但是我想访问网站目录之外的E:上的文件。我试过使用Storage::files('E:')和File::files('E:…