Взаимное отношение одной модели
Есть проблема с отношениями в Laravel. Мне нужно создать отношение исходя из таблицы ниже:
issuer и friend должны быть объединены. Т.е. отношение вернёт все записи где пользователь либо в 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());
}
