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

问题描述 投票:2回答:2

我在这里再一次难以理解做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
php mysql laravel laravel-eloquent relationships
2个回答
2
投票

首先请检查关系函数实现中的外键和本地键是否正确。之后尝试愚蠢的数据

dd($dataUser )

并检查用户模型的关系属性是否实际包含关系模型,如果它不为空,则可以访问该属性

$User->concessionaire->property

如果关系属性显示为空,那么您可能在关系实现函数中放入了不正确的本地或外键。

你应该遵循

$this->hasOne(Relation::class, 'foreign key in related model', 'local key')

0
投票
function concessionaire()
 {
   return $this->hasOne( Concessionaire::class, 'user_id', 'id');
 }

现在您可以访问该物业

@foreach($dataUser as $User)
  <td>
    {{ $User->concessionaire->property }}
 </td>
@endforeach

希望这可以帮助

© www.soinside.com 2019 - 2024. All rights reserved.