php - 传递给 Laravel 函数的参数太少
问题描述
我是 Laravel 的新手,正在尝试创建添加到购物车的功能。但是当我点击我设置的“添加到购物车”图标/按钮时,我收到了这个错误。
Too few arguments to function App\Http\Controllers\ProductController::getAddToCart(), 1 passed and exactly 2 expected
我见过很多类似的问题,但大多数答案看起来很复杂,似乎与我的问题不相似。同样,我是 Laravel 的新手,需要最简单的解释。下面是我的 ProductController 和路由代码
产品控制器:
<?php
namespace App\Http\Controllers;
use App\Cart;
use App\Product;
use Illuminate\Http\Request;
use App\Http\Requests;
use Session;
class ProductController extends Controller
{
public function getProducts()
{
$products = Product::all();
return view('shop', ['products' => $products]);
}
public function getAddToCart(Request $request, $id)
{
$product = Product::find($id);
$oldCart = Session::has('cart') ? Session::get('cart') : null;
$cart = new Cart($oldCart);
$cart->add($product, $product->id);
$request->session()->put('cart', $cart);
dd($request->session()->get('cart'));
return redirect()->route('shop');
}
}
添加到购物车功能的路线:
Route::get('/add-to-cart', ['uses' => 'ProductController@getAddToCart', 'as' => 'product.addToCart']);
P/S:我正在使用 Laravel 6
解决方案
你需要改变你的路线如下
Route::get('/add-to-cart/{id}', ['uses' => 'ProductController@getAddToCart', 'as' => 'product.addToCart']);
推荐阅读
- c# - WPF ListBox 不显示项目(一项一项)
- apache-spark - Python 工作人员意外退出异常 - 在 mapPartitions 中导入 psycopyg 时
- c - 如何使用 fcntl 和 F_GETOWN 知道我们是否收到错误或组 ID?
- ruby-on-rails - 将 rails 关联从 has_many 更改为 has_one
- laravel - 拉拉维尔 | 删除功能 - 如何从日历的事件中删除照片
- bash - 将批处理文件的简单行转换为 bash
- docker - Golang 的 Docker SDK 无法连接到覆盖网络内的守护进程
- cmd - 尝试在 Windows 命令提示符下创建菜单
- algorithm - 动态规划:如何解决大输入的所有组合有序硬币找零问题
- javascript - 如何使每个新输出出现在新框中?