[路线:购物车更新]缺少必需的参数

时间:2020-05-17 01:55:01

标签: php laravel

我无法解决引发我的错误,我使用Laravel 6

缺少[Route:cart-update] [URI:cart / update / {product} / {quantity?}]所需的参数。 (查看:C:\ xampp \ htdocs \ final \ resources \ views \ store \ cart.blade.php)

网络:

Route::get('cart/update/{product}/{quantity?}', [
'as' => 'cart-update',
'uses' => 'CartController@update'

]);

CartController:

public function update(Product $product, $quantity)
{
    $cart = \Session::get('cart');
    $cart[$product->slug]->quantity = $quantity;
    \Session::put('cart', $cart);
    return redirect()->route('cart-show');
}

.blade.php

data-href="{{ route('cart-update', $item->slug) }}"

外观\点火\异常\ ViewException [路线:购物车更新] [URI:购物车/更新/ {产品} / {数量?}]缺少必需的参数。 (查看:C:\ xampp \ htdocs \ final \ resources \ views \ store \ cart.blade.php)

https://flareapp.io/share/qm1eNzmd#F54

我无法解决问题,请帮助

2 个答案:

答案 0 :(得分:0)

在路线中,您将数量cart/update/{product}/{quantity?}声明为可选,但在store方法中则声明为不可选。

您必须执行此操作,这样我才不会给您错误:

public function update(Product $product, $quantity = null)
{
    $cart = \Session::get('cart');
    $cart[$product->slug]->quantity = $quantity;
    \Session::put('cart', $cart);
    return redirect()->route('cart-show');
}

请注意,如果您未同时传递两个参数,则$quantity将成为null。因此,您必须在业务逻辑中对此进行验证。

答案 1 :(得分:0)

尝试发送两个这样的参数:

data-href="{{ route('cart-update', [$item, $item->quantity]) }}"