У меня есть поиск продукта, который делает поиск по названию, описанию, а также ключевые слова, ...запросов пренебрегая условия из-за orwhere - Laravel5
Там находятся 3 колонки, которые содержат эти элементы следующим образом: Название, описание и ключевые слова
Моя проблема в том, что когда я выполняю поиск запросов к продукту, возвращает мне список с несколькими продуктами, но некоторые из них не должны перечисляться для несоблюдения всех требований .... следует за запросом:
Мои действия:
public function search($data)
{
$products = $this->queryProductsAvailable()
->where('produtos.nome', 'like', '%'.$data.'%')
->orWhere('produtos.descricao', 'like', '%'.$data.'%')
->orWhere('produtos.palavras_chave', 'like', '%'.$data.'%')
->limit($this->_limitProducts)
->orderBy('fornecedores.plano_id', 'DESC')
->get();
$this->savePrint($products);
// $categories = $this->setCategories();
return view('Catalogo.search', [
'products' => $products,
'searchTerm' => $data
]
);
}
private function queryProductsAvailable()
{
return Products::join('fornecedores', 'fornecedores.id', '=' ,'produtos.fornecedor_id')
->where('fornecedores.ativo', 1)
->where('produtos.moderacao', "P")
->where('produtos.ativo' , true)
->where('produtos.preco_min', '>', 0)
->select('produtos.*');
// ->limit($this->_limitProducts);
}
При выполнении запроса возвращаются продукты, которые не в стандарте «productsAvailable», который должен быть fornecedor.ativo = 1 и produtos.ativo = 1 (истина)
Несмотря на то что подразумевается в запросе , он игнорирует из-за предложений orWhere.
Мое сомнение заключается в том, как не использовать это илиWhere и сделать мой запрос искать название, описание и ключевые слова?
Вкратце, как мне получить продукты по имени, описанию и ключевым словам столбцов, не игнорируя условия функциональных продуктов? Доступно?
Спасибо! Я попробую еще раз пообедать – Dayglor
Это сработало! Спасибо! Любая статья, которую я могу прочитать об этой функции в том месте где? Я хотел бы узнать больше об этом. – Dayglor
@ Dayglor Лучшее место для начала - документация Laravel. В тех случаях, когда группировка условий конкретно адресована [здесь] (https://laravel.com/docs/5.3/queries#parameter-grouping). – patricus