Laravel 6.0-减少产品数量-未定义路线[cart.update]

时间:2019-12-16 05:52:21

标签: php laravel routes e-commerce

我有一种方法,只需单击一下按钮即可增加产品数量。它运作完美。我从这里的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>
                          &nbsp;&nbsp;
                          <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>
                          &nbsp;&nbsp;
                          <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');

1 个答案:

答案 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');