如何在用户以外的列上调用紧急加载?

时间:2019-01-02 21:07:49

标签: php laravel eloquent

我有ReviewUser模型。在User模态中,我有hasMany('App\Review'),在Review s模型中,我有belongsTo('App\User')。我称之为:

Review::where('user_id', $user)->with('user')->paginate(4);

这可行,我得到撰写评论的用户以及评论本身:

但是,在“评论”表中,我也有他们评论的人(称为fulfiller_id)。我想将每条评论与获得评论的用户一起加载。我做了这样的事情:

Review::where('user_id', $user)->with('fulfiller_id')->paginate(4);

但这给了我一个错误:

  

调用模型[App \ Review]上未定义的关系[fulfiller_id]。

如何将user下的fulfiller_id与每个review一起附加?

1 个答案:

答案 0 :(得分:2)

您可以在Review模型上建立第二种关系:

Review.php

public function user()
{
    return $this->belongsTo(User::class);
}

public function fulfiller()
{
    return $this->belongsTo(User::class, 'fulfiller_id');
}

然后您可以加载:

Review::where('user_id', $user)->with(['user','fulfiller'])->paginate(4);