Это код моей модели, и я пытаюсь получить количество товаров, которое пользователь хочет добавить в свою корзину (количество).Моя проблема в том, как передать значение, которое я получаю в контроллере через запрос к моей модели, потому что оно там, где обрабатываются данные.
Это файл моей модели.Вот как обрабатывается и суммируется количество.
Cart.php
class Cart extends Model
{
public $items = null;
public $totalQty = 0;
public $totalPrice = 0;
public function __construct($oldCart)
{
if ($oldCart)
{
$this->items = $oldCart->items;
$this->totalQty = $oldCart->totalQty;
$this->totalPrice = $oldCart->totalPrice;
}
}
public function add($item, $id)
{
$storedItem = ['qty' => 0, 'price' => $item->price, 'item' => $item];
if ($this->items)
{
if(array_key_exists($id, $this->items))
{
$storedItem = $this->items[$id];
}
}
$storedItem['qty']++;
$storedItem['price'] = $item->price * $storedItem['qty'];
$this->items[$id] = $storedItem;
$this->totalQty++;
$this->totalPrice += $item->price;
}
}
Здесь вы можете увидеть, как я получаю количество из представления.Я сделал $ dd для него, и оно правильно передает количество
ProductController
public function addCart(Request $request) {
$id = request('product_id');
$qty = request('qty');
$product = Product::find($id);
$oldCart = Session::has('cart') ? Session::get('cart') : null;
$cart = new Cart($oldCart);
$cart->add($product, $id, $qty);
$request->session()->put('cart', $cart);
return redirect()->route('user.cart');
}
Это часть представления.Там вы можете увидеть, как я создал форму для передачи данных.
Show.blade View
<form action="{{ route('user.addCart') }}">
<h6 class="text-muted">Qty :</h6>
<select name="qty" id="qty" class="mr-2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<input type="hidden" name="product_id" value="{{ $product->id }}">
<button type="submit" class="btn btn-primary" style="border-radius: 20px;" role="button">Add to <i class="fas fa-shopping-cart"></i></button>
</form>