如何在雄辩的模型中使用外键获取数据?

时间:2017-12-24 16:03:18

标签: php mysql laravel

我的模型名为'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对该属性进行评级的名称用户。我在这个查询中真的很困扰。提前谢谢。

1 个答案:

答案 0 :(得分: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