【发布时间】:2020-11-24 17:27:27
【问题描述】:
我对 Laravel 关系有疑问。
我需要根据这张表建立关系:
issuer 和 friend 需要联合起来。关系将返回用户 ID 在issuer 或friend 中的所有行。目前代码如下所示:
return DB::table('contacts')->select()->where('friend', $this->id)->orWhere('issuer', $this->id)->where('status', 'approved');
以前我用过那个方法,但是没有关系,因为attach()是未定义的。
private function contactsIssued() {
return $this->belongsToMany(User::class, 'contacts','issuer', 'friend');
}
private function contactsFriended() {
return $this->belongsToMany(User::class, 'contacts','friend', 'issuer');
}
public function contacts() {
return $this->contactsIssued()->union($this->contactsFriended()->toBase());
}
所以,我需要建立一个包含两个外部列的关系。
对不起,我的英语可能会被破坏,因为它不是我的母语。
【问题讨论】:
-
那么您遇到的具体问题是什么?你想达到什么目标,你在哪里失败了?
-
所以,我需要一个两个相等列的关系,但我不知道该怎么做
-
@wschopohl 添加了主要问题,抱歉
-
你不见了
get(),return DB::table('contacts')->select()->where('friend', $this->id)->orWhere('issuer', $this->id)->where('status', 'approved')->get(); -
@STA 主要问题与此无关