2014-02-19 37 views
1

我有用戶類(表):Laravel,通過透視表與本身能言善辯表

  • ID
  • 用戶名

而且關係表:

  • USER_ID
  • subscribed_by

想法:每個用戶可以訂閱每個其他用戶。 最後變體(不工作):

/* class User extends Eloquent ... */ 
public function followers() { 
    return $this->belongsToMany('User', 'rel_table')->withPivot('user_id'); 
} 

public function following() { 
    return $this->belongsToMany('User', 'rel_table')->withPivot('subscribed_by'); 
} 

需要幫助:如何設置呢?

回答

1

首先,一個建議,你應該重新命名數據透視表follower_idfollowed_id(或類似的東西)中的字段。這更清楚。

然後,你必須定義這樣的關係:

public function followers() { 
    return $this->belongsToMany('User', 'rel_table', 'followed_id', 'follower_id'); 
} 

public function following() { 
    return $this->belongsToMany('User', 'rel_table', 'follower_id', 'followed_id'); 
} 

withPivot方法用於在除兩個外鍵關係定義其他屬性。

+0

謝謝,但如何使用它? Auth :: user() - > followers()//返回NULL; Auth :: user() - > following()//返回NULL; – user3328074

+0

** return ** oops :) – user3328074

+0

沒有關於您的錯誤的更多解釋,我無法幫助您...您可以閱讀文檔:http://laravel.com/docs/eloquent#many-to-many。 –