Fix – the get method is not supported for this route. supported methods
Posted on: February 26, 2021 by Deven
If you are getting the get method is not supported for this route. supported methods error, this article will help you fix the issue.
consider the following code example which can throw you same error.
Route::group(['middleware'` => 'auth'], function () {
Route::get('/', 'ProjectController@index');
Route::get('/projects/{id}', 'ProjectController@show');
Route::post('/create','ProjectController@store');
Route::get('/create', 'ProjectController@create');
Route::get('/projects/{id}/delete', 'ProjectController@destroy');
Route::put('/edit','ProjectController@update');
Route::get('/projects/{id}/edit', 'ProjectController@edit');
});
Controller:
public function edit($id)
{
return view('project.edit',[
'project' => Project::find($id)
]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request)
{
$project = Project::find($request->id);
$project->project_name = $request->input('project_name');
$project->client = $request->input('client');
$project->description = $request->input('description');
$project->time_span = $request->input('time_span');
$project->text_report = $request->input('text_report');
$project->created_by = $request->input('created_by');
$project->save();
return redirect('/')->with('success', 'Project aangepast');
}`
In the example code snippet above if you insist on using PUT
you can change the form action to POST
and add a hidden method_field
that has a value PUT
and a hidden csrf field (if you are using blade then you just need to add @csrf_field
and {{ method_field('PUT') }})
. This way the form would accept the request. You can also simply change the route and form method to POST
. It will work just fine since you are the one defining the route and not using the resource group.
Share on social media
//