我有一个叫“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'中,我得到了用户id和其他详细信息。我还想得到在propertyRatings对象中使用该用户id对该属性进行评级的名称用户。我在这个问题上真的很困惑。提前谢谢。

最佳答案

使用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

关于php - 如何在 Eloquent 模型中使用外键获取数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47962122/

10-11 03:15
查看更多