Я хочу отфильтровать данные о продукте на основе флажка, установленного пользователем.
Я тестирую его, используя метод ab c () в ProductController и отправляя ему ajax запрос со страницы просмотра передавая ему данные массива.
ProductController
public function abc(Request $request, Product $products)
{
$products = $products->newQuery();
if ($request->has('category')) {
$category = $request->get('category');
$products = $products->whereHas('category', function($query) use($category) {
$query->where('category', 'LIKE', $category.'%'); //query fire to get product as per category name
});
}
if ($request->has('subCategory')) {
$products = $products->whereIn('sub_category_id',$request->subCategory);
}
if ($request->has('color')) {
$color = $request->color;
$products = $products->whereHas('colors', function($q) use($color){
$q->whereIn('colors.id',$color);
});
}
return $products->get();
}
JQuery код
$(document).ready(function(){
var category = "{{ $category }}";
$(document).on("click", ".sub-category-checkbox, .color-checkbox", function(){
var subCategory = [];
var color = [];
$('#subCategoryFilter input[type="checkbox"]:checked').each(function() {
subCategory.push($(this).val());
});
$('#colorFilter input[type="checkbox"]:checked').each(function() {
color.push($(this).val());
});
$.ajax({
url: "{{ route('abc') }}",
type: "GET",
data: { category : category, subCategory : subCategory, color : color },
success: function(data){
console.log(data);
},
error: function(error){
console.log(error.responseJSON);
}
});
});
});
Я тестирование, поэтому я получаю $ category от контроллера, который передает эту $ category для просмотра (show_product.blade. php), в котором есть название категории, например, Men, Women, et c.
Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь устанавливает флажок подкатегории, например, рубашка, футболка, джинсы, он возвращает продукты, относящиеся к этой конкретной категории.
Но когда пользователь проверяет флажок цвета, он возвращает массив с продуктом, относящимся к выбранному цвету, а также возвращает другой массив, содержащий данные, относящиеся к ранее выбранным полям проверки. Например, при загрузке страницы fre sh он возвращает все товары, относящиеся к переданной категории, например, Мужчины. В тот момент, когда пользователи устанавливают флажок черного цвета, он возвращает один массив с продуктами, имеющими черный цвет, и другой массив с продуктами, имеющими категорию как мужчины.
Я не могу понять, почему он возвращает два массива данных .