Слишком мало аргументов для передачи функции в Laravel - PullRequest
0 голосов
/ 26 октября 2019

Я новичок в Laravel и пытаюсь создать функцию добавления в корзину. Но я получаю эту ошибку, когда нажимаю на иконку / кнопку «Добавить в корзину», которую я установил.

Too few arguments to function App\Http\Controllers\ProductController::getAddToCart(), 1 passed and exactly 2 expected

Я видел много похожих вопросов, но большинствоответы выглядят сложными и не похожи на мои вопросы. Опять же, я новичок в Laravel и мне нужна простейшая форма объяснения. Ниже приведены мой ProductController и коды маршрутов

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

1 Ответ

2 голосов
/ 26 октября 2019

Вам нужно изменить маршрут, как показано ниже

Route::get('/add-to-cart/{id}', ['uses' => 'ProductController@getAddToCart', 'as' => 'product.addToCart']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...