我在这里再一次难以理解做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
首先请检查关系函数实现中的外键和本地键是否正确。之后尝试愚蠢的数据
dd($dataUser )
并检查用户模型的关系属性是否实际包含关系模型,如果它不为空,则可以访问该属性
$User->concessionaire->property
如果关系属性显示为空,那么您可能在关系实现函数中放入了不正确的本地或外键。
你应该遵循
$this->hasOne(Relation::class, 'foreign key in related model', 'local key')
function concessionaire()
{
return $this->hasOne( Concessionaire::class, 'user_id', 'id');
}
现在您可以访问该物业
@foreach($dataUser as $User)
<td>
{{ $User->concessionaire->property }}
</td>
@endforeach
希望这可以帮助