AG
$relatedProducts = collect([]);
$fields = ['id','shop_id', 'sku', 'name', 'slug', 'thumbnail_img', 'unit_price', 'weight_price', 'unit', 'subsubcategory_id', 'subcategory_id', 'current_stock'];
$cart = $request->session()->get('cart');
$count = 20 / count($cart);
$productsInCart = Product
::with(['image:id,file_name', 'shop:id,name,logo', 'shop.image:id,file_name'])
->whereIn('id', $cart->pluck('id')->toArray())
->get($fields);
foreach ($productsInCart as $item) {
$groupRelatedProducts = \App\Product
::with('image:id,file_name')
->where([
['subsubcategory_id','=',$item->subsubcategory_id],
['id','!=', $item->id]
])
->orWhere([
['subcategory_id','=',$item->subcategory_id],
['name','LIKE','%'.$item->name.'%'],
['id','!=', $item->id]
])
->get($fields)
->take($count);
if($relatedProducts->count() < 20) {
foreach ($groupRelatedProducts as $groupRelatedProduct) {
if(!$relatedProducts->contains('id', $groupRelatedProduct->id) ) {
$relatedProducts->push($groupRelatedProduct);
}
}
}
помогите
разобраться в чем проблема, получаю похожие продукты из товаров корзины, но среди похожих продуктов почему то товары из корзины тоже, хотя я делаю проверку в 2 местах, сначала в запросе пишу ['id','!=', $item->id]
, а потом в цикле еще проверяю чтобы в коллекции не было товара с похожим id, но там все товары с таким id