Reputation: 511
I am new to Laravel, I was trying to use a form and thus used post
method in it after adding CSRF Token. Also I have downloaded form builder package
and have made all the adjustments needed for the same. But somehow, the post
method in the routes
is not working. Although I tried using get
and any
method in routes and they worked perfect fine.
Controller
:
use App\Http\Controllers\Controller;
class AdminController extends Controller
{
public function index()
{
echo "admin controller";
}
public function formSubmit()
{
echo "Form Submit Method";
return view('layouts\formView');
}
}
View
:
@extends('layouts\masterLayout')
@section('head')
{!!Form::open(['route'=>'f.submit'])!!}
<input type="hidden" name="_token" value="{{ csrf_token() }}">
{!!Form::text('field-one')!!}
{!!Form::submit('')!!}
@endsection
Route
:
Route::post('form-submit',['uses'=>'Admin\AdminController@formSubmit', 'as'=>'f.submit']);
in RouteCollection.php line 218
at RouteCollection->methodNotAllowed(array('POST')) in RouteCollection.php line 205
at RouteCollection->getRouteForMethods(object(Request), array('POST')) in RouteCollection.php line 158
at RouteCollection->match(object(Request)) in Router.php line 821
at Router->findRoute(object(Request)) in Router.php line 691
at Router->dispatchToRoute(object(Request)) in Router.php line 675
at Router->dispatch(object(Request)) in Kernel.php line 246
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Kernel.php line 132
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
at Kernel->handle(object(Request)) in index.php line 53
Upvotes: 1
Views: 389
Reputation: 53
{{csrf_token()}}
Route::post('form-submit',[ 'as'=>'f.submit','uses'=>'Admin\AdminController@formSubmit' ]);
return view('layouts\formView');
return view('layouts.formView');
return view('YourFolderName.FileName');
Upvotes: 0
Reputation: 4135
Change
{!!Form::open(['route'=>'f.submit'])!!}
to
{!!Form::open(['route'=>'f.submit', 'method' => 'POST'])!!}
Reason is probably obvious ;-)
EDIT
Can you change the signature of the formSubmit
function to this:
public function formSubmit(Request $request)
{
echo "Form Submit Method";
return view('layouts\formView');
}
Upvotes: 1