Отношения одной модели - PullRequest
0 голосов
/ 04 августа 2020

У меня проблема с Laravel отношениями. Мне нужно установить отношения на основе этой таблицы:

table

issuer and friend need to be united. Relationship will return all rows where user id in issuer or in friend. At the moment code looks like this:

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());
    }

Итак, мне нужно создать одно отношение с двумя внешними столбцами.

Извините, мой английский sh может быть поврежден, потому что это не мой родной язык.

1 Ответ

0 голосов
/ 04 августа 2020

Это похоже на отношение one to many, но вы используете belongsToMany, которое является отношением many to many и требует таблицы pivot.

, если у вас есть модель user, в которой много contact модель, то в вашей модели contact вы должны использовать отношение one to many, используя belongsTo.

, но если у вас есть 3 таблицы, вы не сказали, что в своем вопросе, пожалуйста, отредактируйте свой вопрос и доказали ваши модели и отношения между ними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...