2017-08-01 13 views
0

私は自分のapplication.ieにrefferalシステムを持っています。同じテーブルでリレーションを定義するLaravel 5.3

ユーザーテーブル

id name 
1 A 
2 B 
3 C 

紹介テーブル

id referrer_id referee_id 
1  1   2 
2  2   3 

私は、ユーザーによって行われた紹介を示したいと思います。

ユーザーモデル

public function referrals() 
{ 
    return $this->hasMany('App\Models\Referral','referee_id','id'); 
} 

紹介モデル紹介モデルでUserモデルとbelongsToの関係で

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の関係、I'amは、所望の結果を得ていません。

@foreach($user->referrals as $key => $referral) 
    {{dd($referral->referee_user->name)}} 
@endforeach 

これは私にあなたが多対多の関係に間違った方法を参照しているユーザー自身の名前(リファラ)ではない審判

+0

Referralを正しく作成してもよろしいですか?おそらくあなたは作成時にIDを切り替えるでしょうか?これまでのところあなたのコードは私にとっては大丈夫です。 – Desh901

+0

いいえthats correct – Shalom

答えて

1

を返します。

とにかく、次のようにはるかに簡単で効率的です。

id name referred_by 
1 abc null 
2 def  1 
3 gfd  2 

ユーザーモデル

/** 
* 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'); 
} 

ちょうど適切な構文をチェックしてください。

+0

ええ、私は変更され、働いています。私はその審判()の関係を得ていませんでしたか? – Shalom

+1

ユーザーは多くのユーザー(紹介者)を参照することがあります。 ユーザーは、他のユーザー(審判員)によって参照される可能性があります。 –

関連する問題