如何在eloquent模型中使用外键获取数据?

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

我有一个名为'PropertyLead'的模型,

class PropertyLead extends Model
{

 public function leadPropertyDetails()
    {
        return $this->belongsTo('App\Models\Property\Property', 'Property_id','id');
    }

    public function user()
    {
        return $this->belongsTo('App\Models\Access\User\User','user_id','id');
    }

     public function propertyRatings()
    {
     return $this
      ->hasMany('App\Models\Property\PropertyRating','Property_id','Property_id');
    }
}

在我的控制器中,我试图获取数据,

$leads = PropertyLead::with('leadPropertyDetails','user','propertyRatings')
                        ->get();

这里的$ leads变量我得到了我想要的所有数据但是在'propertyRatings'我得到了user_id和其他细节。我还希望获得在propertyRatings对象中使用该user_id对该属性进行评级的名称用户。我在这个查询中真的很困扰。提前致谢。

php mysql laravel
1个回答
2
投票

使用nested eager loading syntax加载嵌套关系:

PropertyLead::with('propertyRatings', 'propertyRatings.user', 'leadPropertyDetails', 'user')->get();

然后,您可以显示用户名:

@foreach ($leads as $lead)
    @foreach ($lead->propertyRatings as $propertyRating)
        {{ $propertyRatings->user->name }}
    @endforeach
@endforeach
© www.soinside.com 2019 - 2024. All rights reserved.