Моя главная задача — проверить доступное количество конкретного продукта из базы данных и сравнить его с телега элемент, который сохранен в сессии, я думаю. Я получаю «$ id» из продукта БД и добавляю его в корзину. Но мне также нужно проверить доступное количество, чтобы контролировать увеличение «кол-во» из корзины.
Пока мне удалось это сделать, но пока не удалось получить результат.
// Test Cart Functions
public function addCart($id)
{
$products = MarketProduct::find($id);
$cartItem = Cart::content();
$check = array();
foreach ($cartItem as $one) {
$check[$one['id']] = true;
}
foreach ($products as $two) {
if (isset($check[$two])) {
return 'Match!';
}
}
// foreach(Cart::search(id) as $cartproduct)
// {
// return $cartproduct->options->available_quantity;
// }
$available_quantity = $products->product->available_quantity;
// $cart->search(function ($cartItem, $rowId) {
// return $cartItem->id === $id;
// });
$result = Cart::add([
'id' => $id,
'name' => $products->title,
'qty' => 1,
'price' => $products->mrp(),
'options' => [
'image' => $products->thumbnail(),
'available_quantity' => $available_quantity
]
]);
//$totalcart = Cart::content();
// foreach($totalcart as $cartitem){
// if($cartitem->id == $products->product->id){
// }
// }
return redirect()->back();}
Я должен сопоставить запрошенный $ id с идентификатором элементов корзины, а не с rowId из пакета корзины.
Попробуйте использовать Cart :: search (), чтобы сравнить с предоставленным идентификатором и получить коллекцию $ cartItem, которая соответствует.
Если вы, например, хотите найти все элементы с идентификатором 1:
$cart->search(function ($cartItem, $rowId) {
return $cartItem->id === 1;
});
Проверьте документацию для более подробной информации: https://github.com/Crinsane/LaravelShoppingcart
Других решений пока нет …