我正在构建一个应用程序,我在某些表上设置了雄辩的关系。但是,当我从数据库中提取数据并尝试以我的形式显示时,如果该行不存在,则会出现错误:
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) !!}
如何解决此问题?
答案 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") !!}
但我不建议以这种方式做。而是在控制器中编写逻辑并将该数据传递给该视图。