Php 与键上的条件有关的Laravel ORM多对多关系

Php 与键上的条件有关的Laravel ORM多对多关系,php,laravel,laravel-4,eloquent,relationship,Php,Laravel,Laravel 4,Eloquent,Relationship,我有一个成员表,如下所示: ------------------ | id | name | ... ------------------ 1 John 2 Jane 3 Bill 和一个关系表来存储它们的关系 ---------------------------- | from_id | to_id | status | ---------------------------- 1 2 friend 2

我有一个
成员
表,如下所示:

------------------
| id | name | ...
------------------
   1   John
   2   Jane
   3   Bill
和一个
关系
表来存储它们的关系

----------------------------
| from_id | to_id | status |
----------------------------
   1          2     friend
   2          3     friend
第一记录说:1号和2号成员是朋友。
member#1是#2的朋友
member#2是#1的朋友

在Laravel中,我如何拥有一个关系来获得一个成员的所有朋友?
我需要检查两列
from_id
to_id
,在我的
成员
模型中使用此语法,我无法获得它

会员模式

public function friends(){
    return $this->belongsToMany('Member', 'relations', 'from_id', 'to_id' );
}
这只返回成员id为来自成员id的记录

如果member=1,我想要这个查询

有什么帮助吗


谢谢。

使用Laravel ORM,这不是我问题的正确答案,但我正在使用它,它会产生相同的结果。我希望如果其他人知道正确答案,在这里与我们分享。谢谢

成员
模型中定义此方法:

return Member::join('relations', function($join) use($limit) {
            $join->on('relations.from_id', '=', 'members.id')
                ->orOn('relations.to_id', '=', 'members.id');
        })
        ->where(function($where){
            $where->where('relations.from_id', '=', $this->id)
                ->orWhere('relations.to_id', '=', $this->id);
        })
        ->where('members.id', '!=', $this->id)
        ->groupBy('members.id')
        ->get();
因此,我可以使用:

$member = Member::find(1); // for example user#1
$member->friends(); // a list of eloquent objects of members.
$member = Member::find(1); // for example user#1
$member->friends(); // a list of eloquent objects of members.