创建自引用关系

时间:2017-08-23 01:22:09

标签: php laravel laravel-5.4

我希望能够在船长和他的推荐人之间建立关系。它们都属于同一张桌子。我在我的模型中有这个

public function captain() {
    $this->belongsTo('User', 'referral_id') ;
} 

 public function captain() {
    $this->hasMany('User', 'referral_id') ;
 } 

我的用户表包含以下列 id name referral_id refer_by

1 xyz         1223          null
2 Abc         4525          1223

如何更好地建立关系?而且我想知道我是否可以以及如何使用它来获得船长推荐的推荐

1 个答案:

答案 0 :(得分:1)

我为你的推荐创建了第二个表 - 然后你在表2中创建了你的队长ID之间的关系,在表2中可以存储所有的引用。如果您设置了关系,那么您只需调用类似

的内容
$captains = App\Captain::all();

foreach ($captains as $captain) {
    echo $captain->referrals->name;
}

REF 使用简单的预先加载...或 - >使用其他方法(或加入等)