我是 Laravel 的新手,在口才方面存在自我关系问题。我有users
带有字段id
和的表,表用户的外键referrer
在哪里referrer
(每个用户都有一个引用者,也是用户)。并且表invoice
与用户有关。
我想为用户和推荐人获取所有发票。
在模型中我建立了关系:
public function referrer()
{
return $this->hasOne('User', 'referrer');
}
public function referral()
{
return $this->belongsTo('User','id');
}
public function invoice()
{
return $this->hasMany('invoice', 'user_id');
}
并查询:
$this->model->with(['invoice'])
->with(['referrer'=> function($q)
{
$q->with(['invoice']);
}]);
}]);
但是这个查询返回我用户和他们的发票但不返回推荐人只是空数组键referrer =>
更新
我改变关系:
public function referrer()
{
return $this->hasOne('User', 'referrer');
}
public function referral()
{
return $this->belongsTo('User','referrer');
}
public function invoice()
{
return $this->hasMany('invoice', 'user_id');
}
现在转储结果我看到了推荐人关系但是当我尝试获取时 $user->referrer
我只得到了推荐人ID而不是推荐人对象