2017-12-26 24 views
0

のプロパティを取得しようとすると、私は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 

この場合の対処方法はありますか?

答えて

3

あなたは変更する必要があります。

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

へ:

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

これは、いくつかのケースで$instruがnullされているためと$instruがnullのときに$instru->revisions_idを実行することはできません