Делаю выборку из базы. Из таблицы выбираю посты пользователя - публичные и личные. Потом хочу из этих постов выбрать посты только по определенным категориям.
$posts = Posts::where('status', 1)->orWhere(function($user_post){
$user_post->where('status', 3)
->where('public', 0);
});
//какой-то код где получаем id категорий
$cats_id = [3, 7, 12 ,15];
$posts = $posts->whereIn('cat_id', $cats_id)->get();
Не срабатывает. Все равно получаю все посты, без фильтра категорий.
Но, если убрать orWhere из запроса, то whereIn() во втором запросе срабатывает.
id категорий могу получить только после некоторых манипуляций. Сразу их в выборку не получиться взять
Как подружить where()->orWhere и whereIn()?