我有用户类(表):
关系表:
创意:每个用户都可以订阅其他用户。 最后一个变种是(不起作用):
/* 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');
}
需要帮助:如何设置?
答案 0 :(得分:1)
首先,建议您应重命名数据透视表follower_id
和followed_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
方法用于定义关系上的其他属性,而不是两个外键。