class agency extends Model
{
protected $table = 'agency';
public function organizations()
{
return $this->belongsTo('\App\model\organization');
}
}
$agency = \App\model\agency::with('organizations')->get();
@foreach($agency as $agency)
<tr>
<th>{{$agency['id']}}</th>
<th>{{$agency['agency_name']}}</th>
<th>{{$agency['linked_organization_id']}}</th>
<th>{{$agency['created_at']}}</th>
<th>{{$agency['updated_at']}}</th>
<th>{{$agency->organizations->organization_name}}</th>
</tr>
@endforeach
尝试获取非对象的属性
为什么{{$ agency-&gt; organizations-&gt; organization_name}}不会返回数据???
答案 0 :(得分:2)
您的代码中存在许多错误:
1st:为什么关系名称为organization>s<
(复数)
是指一个单一的组织?
这真的是一个单一的组织,或者你输入你的关系感到困惑?
第二名:这可能是导致您出现问题的原因:
@foreach($agency as $agency)
您对阵列和项目使用相同的变量名称。
通过这样做,在第一次 foreach 迭代中,你将拥有一个模型,很好。但是你已经用模型替换了“foreached”数组。
现在在后续迭代中,foreach将迭代模型的属性。
$agency->organizations
会出错的原因!
第3名:(新)您的组织关系错误!
public function organizations()
{
return $this->belongsTo('\App\model\organization');
}
使用这种方式,Laravel假定您的外键是organizations_id
。但是在您的代码中,我已经看到您的外键是linked_organization_id
。所以你必须指定外键名称!
public function organizations()
{
return $this->belongsTo('\App\model\organization', 'linked_organization_id');
}
答案 1 :(得分:0)
试
@foreach($agencies as $agency)
<tr>
<th>{{$agency['id']}}</th>
<th>{{$agency['agency_name']}}</th>
<th>{{$agency['linked_organization_id']}}</th>
<th>{{$agency['created_at']}}</th>
<th>{{$agency['updated_at']}}</th>
<th>{{$agency->organizations()->organization_name}}</th>
</tr>
@endforeach