php - Missing argument 2 for App\Http\Controllers\ProductController::getAddToCart() -
i have been struggling in finding solution error. tried different solutions getting same result. problem of second argument , don't know why not working?
index page:
@extends('layouts.master') @section('title') laravel shopping cart @endsection @section('content') @foreach($products->chunk(3) $productchunk) <div class="row"> @foreach($productchunk $product) <div class="col-sm-6 col-md-4"> <div class="thumbnail"> <img src="{{$product->imgpath}}" class="img-responsive"> <div class="caption"> <h3>{{$product->title}}</h3> <p class="description">{{$product->description}} </p> <div class="clearfix"> <div class="price pull-left">${{$product->price}}</div> <a href="{{route('product.addtocart', ['id'=>$product->id])}}" class="btn btn-success pull-right" role="button">add cart</a> </div> </div> </div> </div> @endforeach </div> @endforeach @endsection productcontroller.php
namespace app\http\controllers; use illuminate\http\request; use app\http\requests; use app\product; class productcontroller extends controller { public function getindex(){ $products = product::all(); return view('shop/index',['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('product.index'); } } route.php
<?php /* |-------------------------------------------------------------------------- | application routes |-------------------------------------------------------------------------- | | here can register of routes application. | it's breeze. tell laravel uris should respond | , give controller call when uri requested. | */ route::get('/', ['uses' => 'productcontroller@getindex', 'as' => 'product.index']); route::get('add-to-cart', [ 'uses' => 'productcontroller@getaddtocart', 'as' => 'product.addtocart' ]); route::group(['prefix' => 'user'], function(){ route::group(['middleware' => 'guest'], function(){ route::get('/signup', ['uses' => 'usercontroller@getsignup', 'as' => 'user.signup']); route::post('/signup', ['uses' => 'usercontroller@postsignup', 'as' => 'user.signup']); route::get('/signin', ['uses' => 'usercontroller@getsignin', 'as' => 'user.signin']); route::post('/signin', ['uses' => 'usercontroller@postsignin', 'as' => 'user.signin']); }); route::group(['middleware' => 'auth'], function(){ route::get('/profile', ['uses' => 'usercontroller@getprofile', 'as' => 'user.profile']); route::get('/logout', ['uses' => 'usercontroller@getlogout', 'as' => 'user.logout']); }); }); error log:
errorexception in productcontroller.php line 16: missing argument 2 app\http\controllers\productcontroller::getaddtocart() in productcontroller.php line 16 @ handleexceptions->handleerror('2', 'missing argument 2 app\http\controllers\productcontroller::getaddtocart()', '/home/ubuntu/workspace/app/http/controllers/productcontroller.php', '16', array('request' => object(request))) in productcontroller.php line 16 @ productcontroller->getaddtocart(object(request)) @ call_user_func_array(array(object(productcontroller), 'getaddtocart'), array(object(request))) in controller.php line 80 @ controller->callaction('getaddtocart', array(object(request))) in controllerdispatcher.php line 146 @ controllerdispatcher->call(object(productcontroller), object(route), 'getaddtocart') in controllerdispatcher.php line 94 @ controllerdispatcher->illuminate\routing\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 52 @ pipeline->illuminate\routing\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 103 @ pipeline->then(object(closure)) in controllerdispatcher.php line 96 @ controllerdispatcher->callwithinstack(object(productcontroller), object(route), object(request), 'getaddtocart') in controllerdispatcher.php line 54 @ controllerdispatcher->dispatch(object(route), object(request), 'app\http\controllers\productcontroller', 'getaddtocart') in route.php line 174 @ route->runcontroller(object(request)) in route.php line 140 @ route->run(object(request)) in router.php line 724 @ router->illuminate\routing\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 52 @ pipeline->illuminate\routing\{closure}(object(request)) in verifycsrftoken.php line 64 @ verifycsrftoken->handle(object(request), object(closure)) @ call_user_func_array(array(object(verifycsrftoken), 'handle'), array(object(request), object(closure))) in pipeline.php line 136 @ pipeline->illuminate\pipeline\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 32 @ pipeline->illuminate\routing\{closure}(object(request)) in shareerrorsfromsession.php line 49 @ shareerrorsfromsession->handle(object(request), object(closure)) @ call_user_func_array(array(object(shareerrorsfromsession), 'handle'), array(object(request), object(closure))) in pipeline.php line 136 @ pipeline->illuminate\pipeline\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 32 @ pipeline->illuminate\routing\{closure}(object(request)) in startsession.php line 64 @ startsession->handle(object(request), object(closure)) @ call_user_func_array(array(object(startsession), 'handle'), array(object(request), object(closure))) in pipeline.php line 136 @ pipeline->illuminate\pipeline\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 32 @ pipeline->illuminate\routing\{closure}(object(request)) in addqueuedcookiestoresponse.php line 37 @ addqueuedcookiestoresponse->handle(object(request), object(closure)) @ call_user_func_array(array(object(addqueuedcookiestoresponse), 'handle'), array(object(request), object(closure))) in pipeline.php line 136 @ pipeline->illuminate\pipeline\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 32 @ pipeline->illuminate\routing\{closure}(object(request)) in encryptcookies.php line 59 @ encryptcookies->handle(object(request), object(closure)) @ call_user_func_array(array(object(encryptcookies), 'handle'), array(object(request), object(closure))) in pipeline.php line 136 @ pipeline->illuminate\pipeline\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 32 @ pipeline->illuminate\routing\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 103 @ pipeline->then(object(closure)) in router.php line 726 @ router->runroutewithinstack(object(route), object(request)) in router.php line 699 @ router->dispatchtoroute(object(request)) in router.php line 675 @ router->dispatch(object(request)) in kernel.php line 246 @ kernel->illuminate\foundation\http\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 52 @ pipeline->illuminate\routing\{closure}(object(request)) in checkformaintenancemode.php line 44 @ checkformaintenancemode->handle(object(request), object(closure)) @ call_user_func_array(array(object(checkformaintenancemode), 'handle'), array(object(request), object(closure))) in pipeline.php line 136 @ pipeline->illuminate\pipeline\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 32 @ pipeline->illuminate\routing\{closure}(object(request)) @ call_user_func(object(closure), object(request)) in pipeline.php line 103 @ pipeline->then(object(closure)) in kernel.php line 132 @ kernel->sendrequestthroughrouter(object(request)) in kernel.php line 99 @ kernel->handle(object(request)) in index.php line 54
try adding id parameter defined route
route::get('add-to-cart/{id}', [ 'uses' => 'productcontroller@getaddtocart', 'as' => 'product.addtocart' ]);
Comments
Post a Comment