已解决,其他原因导致错误,而不是空关系。
我在完成这项工作时遇到了一些麻烦。我有一个组合4个表的大表单。对于我的例子,我将使用3.以下是我发送给视图的内容:
$student = Student::with('primaryInsurance')->with('secondaryInsurance')->findOrFail($student_id);
如果学生同时拥有primaryInsurance和secondaryInsurance,那么表单可以正常工作但是我得到了一个"试图获得非对象的属性"如果一个或两个不在表中。我怎么能避免这个?
以下是我的表格中的几个字段:
{{ Form::text('last_name', null, ['class' => 'form-control required']) }}
{{ Form::text('primaryInsurance[insured_name]', null, ['class' => 'form-control']) }}
{{ Form::text('secondaryInsurance[insured_name]', null, ['class' => 'form-control']) }}
来自学生模特:
public function primaryInsurance() {
return $this->hasOne(StudentInsurance::class, 'student_id', 'student_id')->where('is_primary', '=', 1);
}
public function SecondaryInsurance() {
return $this->hasOne(StudentInsurance::class, 'student_id', 'student_id')->where('is_primary', '=', 1);
}
答案 0 :(得分:1)
首先,结合您的print "REDACTED "
查询以使您的代码更清晰。像这样:
with
接下来,在你的视图中检查对象是否已设置(我认为你应该在这里使用一个对象而不是数组 - 这是导致我相信错误的原因)。你必须要测试。您的问题也可能是您要将对象包装在' &#39 ;.唐'吨。如果这不起作用,我需要看看你的控制器逻辑才能更好地理解。
$student = Student::with('primaryInsurance', 'secondaryInsurance')->findOrFail($student_id);
如果不存在,您也可以对此进行三元制默认为{{ Form::text($primaryInsurance->insured_name, null, ['class' => 'form-control']) }}
:
null