我有一种方法,只需单击一下按钮即可增加产品数量。它运作完美。我从这里的GitHub包中调用Cart对象:
Gloudemans\Shoppingcart\Facades\Cart;
代码如下:
// CartController.php
public function update(Request $request, $rowId)
{
$product = Cart::get($rowId);
Cart::update($rowId, $product->qty + 1);
return back()->with('quantityIncreasedMessage', 'Product quantity has been increased.');
}
// cart.blade.php
{{-- INCREASE PRODUCT QUANTITY --}}
<td class="border-0 align-middle">
<form action="{{ route('cart.update', $product->rowId) }}"
method="POST">
@csrf
@method('PATCH')
<strong>{{ $product->qty }}</strong>
<button>+</button>
</form>
</div>
</td>
{{-- END INCREASE PRODUCT QUANITITY --}}
我想做一些与减少产品数量的方法几乎相同的事情。这是代码:
// CartController.php
public function decreaseQuantity(Request $request, $rowId)
{
$product = Cart::get($rowId);
Cart::update($rowId, $product->qty - 1);
return back()->with('quantityDecreasedMessage', 'Product quantity has been increased.');
}
// cart.blade.php
{{-- DECREASE PRODUCT QUANTITY --}}
<td class="border-0 align-middle">
<form action="{{ route('cart.decreaseQuantity', $product->rowId) }}"
method="POST">
@csrf
@method('PATCH')
<strong>{{ $product->qty }}</strong>
<button>-</button>
</form>
</div>
</td>
{{-- END DECREASE PRODUCT QUANITITY --}}
我不确定为什么,但是在实现此方法并尝试访问我的购物车页面时,出现以下错误消息:Route [cart.update] not defined.
。正如我所说,这两种方法的代码几乎相同。
我觉得很奇怪,因为我在此处明确定义了我的两个命名路由:
// web.php
// increases product quantity
Route::patch('/cart/{rowId}', 'CartController@update')->name('cart.update');
// decreases product quantity
Route::patch('/cart/{rowId}', 'CartController@decreaseQuantity')->name('cart.decreaseQuantity');
答案 0 :(得分:0)
请勿使用相同的网址调用2个函数。
// web.php
// increases product quantity
Route::patch('/cart/increase/{rowId}', 'CartController@update')->name('cart.update');
// decreases product quantity
Route::patch('/cart/decrease/{rowId}', 'CartController@decreaseQuantity')->name('cart.decreaseQuantity');