I was trying to update a user, so added the edit method (to redirect to the edit form page) and update method (to update the data from the form) in my controller.
Here is the edit button: <a href="{{ route('admin.edit', $user->id) }}"</a>
But I am getting this error when clicking the edit button: The GET method is not supported for this route. Supported methods: POST, DELETE. Am I doing anything wrong here?
My Routes:
Route::get('users', 'UserlistController@display')->name('admin.userlist');
Route::post('users', 'UserlistController@store')->name('admin.create');
Route::post('users/edit', 'UserlistController@edit')->name('admin.edit');
Route::post('users/edit?{id}', 'UserlistController@update')->name('admin.update');
Route::delete('users/{id}', 'UserlistController@destroy')->name('admin.deleteuser');
My Methods in the controller:
public function edit($id)
{
$title = 'Update User';
$user = User::findOrFail($id);
return view('dashboard.edit', compact('title'))->withUser($user);
}
public function update($id, Request $request)
{
$updateuser = User::findOrFail($id);
$this->validate($request, [
'name' => 'required',
'useravatar' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$imageName = time().'.'.$request->useravatar->extension();
$request->useravatar->move(public_path('img'), $imageName);
$input = $request->all();
$input['useravatar'] = $imageName;
$updateuser->fill($input)->save();
Session::flash('success', 'Successfully updated!');
}