首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义同一表上的关系-- Laravel 5.3

定义同一表上的关系-- Laravel 5.3
EN

Stack Overflow用户
提问于 2017-08-01 09:50:48
回答 1查看 511关注 0票数 0

我的application.ie中有一个参考系统,一个用户可以修改另一个用户。

用户表

代码语言:javascript
复制
id name 
1   A
2   B
3   C

推荐表

代码语言:javascript
复制
id referrer_id referee_id
1      1           2
2      2           3

我想显示用户的推荐。

用户模型

代码语言:javascript
复制
public function referrals()
{
    return $this->hasMany('App\Models\Referral','referee_id','id');
}

推荐模型

代码语言:javascript
复制
public function referrer_user()
{
    return $this->belongsTo('Modules\User\Models\User','referrer_id','id');
}

public function referee_user()
{
    return $this->belongsTo('Modules\User\Models\User','referee_id','id');
}

在用户模型中定义hasMany关系和在推荐模型中定义belongsTo关系,我无法得到所需的结果。

代码语言:javascript
复制
@foreach($user->referrals as $key => $referral)
    {{dd($referral->referee_user->name)}}
@endforeach

这将返回用户的名称(推荐者),而不是裁判员。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-01 10:16:56

你指的ManyToMany关系是错误的。

无论如何,下面的方法会更容易、更有效率。

代码语言:javascript
复制
id  name  referred_by
 1   abc    null
 2   def     1
 3   gfd     2

用户模型

代码语言:javascript
复制
/**
 * Who did he bring onboard?
*/
public function referrals(){
  return $this->hasMany('....User', 'referred_by');
}

//Who brought him onboard..
public function referree(){
  return $this->belongsTo('...User', 'referred_by');
}

只需检查适当的语法即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45434554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档