雄辩 - 试图获得非对象的属性

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

我正在使用Laravel 5.5,我有以下查询:

                $instru = Instruments::where('name', '=', $coinArr[$key])->first(); 
                $i = Revision::where('id', '=', $instru->revisions_id)->first();
                if ($i ===  NULL) { ...

在设置案例中$instru = NULL因此对Revision模型的查询不起作用。

我的问题是,如果我var_dump($i)我得到以下错误,不要遇到if-clause

[2017-12-26 21:38:10] local.ERROR: Trying to get property of non-object  

有什么建议如何处理这个案子?

php laravel laravel-5 eloquent
1个回答
3
投票

你应该改变:

$i = Revision::where('id', '=', $instru->revisions_id)->first();

成:

$i = $instru ? Revision::where('id', '=', $instru->revisions_id)->first() : null;

这是因为在某些情况下$instru为null,当$instru->revisions_id为null时,你无法运行$instru

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