【问题标题】:Too few arguments to function App\Http\Controllers\CartController::destroy(), 0 passed and exactly 1 expected函数 App\Http\Controllers\CartController::destroy() 的参数太少,通过了 0,预期正好 1
【发布时间】:2020-12-11 17:54:49
【问题描述】:

我正在使用 darryldecode ShoppingCart 库,但是当我尝试从购物车中删除商品时,我不断收到上述错误,我不知道缺少什么。下面是我的代码。

public function destroy($id)
{
    Cart::remove($id);
    return redirect()->back();
}

这是我的路线。

Route::delete('/cart', 'CartController@destroy')->name('cart.destroy');

这是我的看法

<form action="{{ route('cart.destroy') }}" method="POST">
    @csrf
    {{ method_field('DELETE') }}
    <button type="submit" class="btn btn-link mr-2" style="color: gray">Remove</button>
</form>

我错过了什么?感谢您的关心!

【问题讨论】:

  • 你需要传递 id ...

标签: laravel laravel-5 laravel-7 laravel-7.x


【解决方案1】:

路线:

Route::delete('/cart/{id}', 'CartController@destroy')->name('cart.destroy');

表单:您需要在表单中传入cart-id

<form action="{{ route('cart.destroy', ['id' => $id]) }}" method="POST">
    <input class="btn btn-default" type="submit" value="Delete" />
    @method('delete')
    @csrf
</form>

【讨论】:

  • 当我更改为“缺少 [Route: cart.destroy] [URI: cart{id}] 所需的参数时显示的内容。(查看:C:\xampp\htdocs\E- Commerce\resources\views\pages\cart.blade.php)"
  • 我建议使用route('cart.destroy', ['id' =&gt; $id]) 而不是url()。这就是命名路线的用途。
  • 这就是我使用路由和 url “未定义变量:id(查看:C:\xampp\htdocs\E-Commerce\resources\views\pages\cart.blade.php) "
  • 你需要在那边指定cart-id,检查你在cart-id中传递的变量。
猜你喜欢
  • 2019-10-29
  • 2020-04-22
  • 2019-07-06
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多