Задать вопрос

Отношения 3 таблиц в Laravel?

Необходимо вывести статьи созданные пользователями, на которых пользователей подписан пользователь.
Есть 3 таблицы
Users - поля id
Posts - поля id, user_id
Subscriptions- поля id, user_id(пользователь), user_sub_id(на кого подписан, одно значение)

Модели
class User extends EloquentUser{
     public function postsSub(){
        return $this->hasManyThrough('App\Post', 'App\Subscription', 'user_id', 'user_id');
    }
}


В контроллере делаю следующее
$posts = User::find(1)->postsSub()->toSql();

Получаю запрос
select * from `posts` inner join `subscriptions` on `subscriptions`.`id` = `posts`.`user_id` where `subscriptions`.`user_id` = 1


Мне же нужно чтобы в запросе вместо `subscriptions`.`id` = `posts`.`user_id` было `subscriptions`.`user_sub_id` = `posts`.`user_id`

Собственно как можно сформировать такой запрос

select * from `posts` inner join `subscriptions` on `subscriptions`.`user_sub_id` = `posts`.`user_id` where `subscriptions`.`user_id` = 1


Ну или как то это по другому можно сделать?
  • Вопрос задан
  • 359 просмотров
Подписаться 2 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@SteepZero
Используй belongsToMany
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы