在Laravel关系中以一对一关系的VIEW显示

时间:2018-03-04 09:40:05

标签: php mysql laravel laravel-eloquent relationships

我在这里又一次难以理解做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

2 个答案:

答案 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

希望这有帮助