我在这里又一次难以理解做Laravel关系的正确方法
我有这个用户模型
public function concessionaire()
{
return $this->hasOne('App\Concessionaire', 'meternum', 'meternum');
}
和特许经营模式
public function user()
{
return $this->belongsTO('App\User', 'meternum', 'meternum');
}
但是当我尝试在我看来显示它时。特许公司数据字段不显示..
在我的控制器中我有这个
$dataUser = User::where('usertype', '=', 'concessionaire')
->with('concessionaire')
->get();
return view('admin.concessionaire',compact('dataUser'));
在我的视图中
@foreach($dataUser as $User)
<td>
{{ $User->clark }}
</td>
@endforeach
答案 0 :(得分:2)
首先请检查外部和本地密钥在关系函数实现中是否正确。之后尝试愚蠢的数据,如
dd($dataUser )
并检查用户模型的关系属性是否实际包含关系模型,如果它不为空,则可以访问属性,如
$User->concessionaire->property
如果关系属性显示为空,那么您可能在关系实现函数中放置了不正确的本地或外键。
你应该关注
$this->hasOne(Relation::class, 'foreign key in related model', 'local key')
答案 1 :(得分:0)
function concessionaire()
{
return $this->hasOne( Concessionaire::class, 'user_id', 'id');
}
现在您可以使用
访问该属性@foreach($dataUser as $User)
<td>
{{ $User->concessionaire->property }}
</td>
@endforeach
希望这有帮助