【问题标题】:Missing required parameters for [Route: cart-update][Route: cart-update] 缺少必需的参数
【发布时间】:2020-05-17 01:55:01
【问题描述】:

我无法解决这个引发我的错误,我使用 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'

]);

购物车控制器:

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) }}"

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

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

我无法解决问题,请帮忙

【问题讨论】:

  • 添加参数名称data-href="{{ route('cart-update', ['product' => $item->slug]) }}"
  • 感谢您的帮助,但仍然给我同样的错误:(
  • 您确定$item->slug 不为空吗?尝试硬编码值{{ route('cart-update', ['product' => 1])。另外...为什么要使用带有 slug 的模型绑定?是模型主键吗?
  • 你的路由需要两个参数product & quantity,但是你只传递了一个参数。

标签: php laravel


【解决方案1】:

在路由中,您将数量 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。因此,您必须在业务逻辑中验证这一点。

【讨论】:

  • 感谢您的帮助,但仍然给我同样的错误
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多