Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Есть связь many to many, задача выбрать все продукты из выбранных категорий по айди
Код модели Product:
public function pivot_where()
{
return $this->belongsToMany(Category::class);
}
В контроллере пишу функцию:
$arr = [1,2]; //массив с айди категорий
$product_pivot = Product::all();
$product_pivot = $product_pivot->pivot->pivot_where->wherePivotIn('category_id', $arr)->get();
Не работает(( Подскажите как надо.
Изменено grafillo (10.05.2021 10:27:02)
Не в сети
Ну во первых, all() возвращает коллекцию, а вы к коллекции как к объекту обращаетесь ниже в коде.
Во вторых сделайте нормальное название связей.
// Product model
public function categories()
{
return $this->belongsToMany(Category::class);
}
$products = Product::query()->whereHas('categories', function($q) use ($arr) {
$q->whereIn('categories.id', $arr);
})->get();
Не в сети
Страницы 1