Как реализовать запросы на laravel?
$posts = Poste::Where('category_id', $category_id)
->get();
При этом мне нежно сделать проверку, например на поле price, то есть:
$posts = Poste::Where('category_id', $category_id)
->Where('price', $price)
->get();
Проблема заключается в том, что price может и не быть, то есть быть пустым, если price приходит пустым, то он начинает искать все посты, у которых поле price пустое. Как сделать если $price приходит пусто, то при запросе, price не учитывается
На моей памяти нет метода Where (с большой буквы) - только where.
Теперь к вопросу. Для использования динамический запросов сохрани Builder в переменную
// Довольно странное имя модели Poste
$builder = Poste::where('category_id', $category_id);
if($price){
$builder->where('price', $price);
}
$posts = $builder->get();
Почитай хорошие практики Laravel об именовании
Как вариант можно использовать метод билдера when:
$posts = Poste::where('category_id', $category_id)
->when(!empty($price), function($query) use($price) {
return $query->where('price', $price)
})
->get();
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости