Как сравнить данные из двух разных массивов в Laravel 5.4 с помощью Crinsane / LaravelShoppingcart

Моя главная задача — проверить доступное количество конкретного продукта из базы данных и сравнить его с телега элемент, который сохранен в сессии, я думаю. Я получаю «$ 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 из пакета корзины.

0

Решение

Попробуйте использовать Cart :: search (), чтобы сравнить с предоставленным идентификатором и получить коллекцию $ cartItem, которая соответствует.

Если вы, например, хотите найти все элементы с идентификатором 1:

$cart->search(function ($cartItem, $rowId) {
return $cartItem->id === 1;
});

Проверьте документацию для более подробной информации: https://github.com/Crinsane/LaravelShoppingcart

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector