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

时间:2017-12-26 21:48:38

标签: php laravel laravel-5 eloquent

我正在使用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  

有关如何处理此案的任何建议吗?

1 个答案:

答案 0 :(得分:3)

你应该改变:

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

成:

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

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