Как получить продукты из базы данных, используя сводную таблицу категорий, и выполнить еще один запрос по найденным продуктам в laravel? - PullRequest
0 голосов
/ 31 августа 2018

У меня есть таблица продуктов, таблица категорий и таблица category_product. Я хочу получить продукты определенной категории, а затем выполнить другой запрос к полученным продуктам, используя столбец, который принадлежит таблице продуктов. например, все продукты, которые относятся к категории мобильных и имеют цену менее 1000 $. Как я могу это сделать? и второй вопрос: как добавить к нему нумерацию страниц?

ОБНОВЛЕНИЕ: решено

с таким запросом:

$products = Category::where(['title' => 'mobile'] )->first()->pictures()->where('price', '<' , 1000)->latest()->paginate(10);

1 Ответ

0 голосов
/ 31 августа 2018

У вас есть несколько вариантов:

Category::whereTitle('mobile')->with(['pictures' => function ($q) {
  $q->where('price', '<' , 1000)->latest();
}])->paginate(10);

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

// @Category Model

public function cheapPictures() {
   return $this->hasMany(Picture::class)->where('price', '<' , 1000);
}

Вы также можете использовать локальные области действия https://laravel.com/docs/5.6/eloquent#local-scopes

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