Laravel 5.1 - 刀片在雄辩关系设置中没有记录时给出错误

时间:2015-09-07 12:16:36

标签: php laravel laravel-5

我正在构建一个应用程序,我在某些表上设置了雄辩的关系。但是,当我从数据库中提取数据并尝试以我的形式显示时,如果该行不存在,则会出现错误:

Trying to get property of non-object (View: /home/vagrant/Code/App/public/resources/views/themes/default/admin/editContractor.blade.php)

如果数据库中存在该行,则页面加载正常且没有错误。请注意,这些字段是可选的,因此它们可能并不总是存在于数据库的数据透视表中。

以下是似乎导致此问题的一行:

{!! Form::text($rate->field, $user->rates()->where('rate_id', $rate->id)->first()->pivot->value) !!}

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

在回显该值之前,您可以检查它是否存在

{!! Form::text($rate->field, ($user->rates()->where('rate_id', $rate->id)->first()) ? $user->rates()->where('rate_id', $rate->id)->first()->pivot->value : null) !!}

答案 1 :(得分:1)

就我所关注的而言,你应该这样做:

{!! Form::text($rate->field, ($user->rates()->where('rate_id', $rate->id)->first()) or "Your default value") !!}

但我不建议以这种方式做。而是在控制器中编写逻辑并将该数据传递给该视图。