Laravel несколько Модулей запрос - PullRequest
0 голосов
/ 25 апреля 2019

эй, я посмотрел довольно много статей сейчас, но я думаю, что мои знания мешают мне адаптировать любой пример, поэтому я надеюсь, что вы можете помочь:

Что я хочу: иметь красноречивый запрос, который выглядит в 2 таблицах

Что у меня есть:

$myProfile = \App\User::with('friends')->where('friend_type','2')->get();

- это мой желанный результат. В моей модели пользователя у меня есть следующее:

    public function friends()
{
    return $this->hasMany(Friend::class);
}

и у моих друзей модель:

    public function user()
{
    return $this->belongsTo(User::class);
}

и то, что я тоже пробовал:

$myProfile = \App\User::with(['friends'])->where('friend_type','2')->get();

или

$myProfile = \App\User::with('friends')->where('friends.friend_type',2)->get();

но ошибка, которую я получаю, остается прежней:

Column not found: 1054 Unknown column 'friends.friend_type' in 'where clause' (SQL: select * from `users` where `friends`.`friend_type` = 2 and `users`.`deleted_at` is null)

большое спасибо заранее

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Если вы хотите выбрать всех пользователей, чей friend_type равен 2, вам следует использовать whereHas.Это было бы похоже на

\App\User::whereHas('friends', function($q){
  $q->where('friends.friend_type',2)
})->get();
1 голос
/ 25 апреля 2019

Я думаю, что следующее было бы уловкой:

User::with(['friends' => function ($query) {
    $query->where('friend_type', 2);
}])->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...