0
votes

I am trying to create a user but I get this error: Route [users.store] not defined. (View: C:\xampp\htdocs\laravel-sb\resources\views\backend\user\create.blade.php)... but when I run the route:list comand I get:

|        | POST      | users                         | users.uploadProfile | App\Http\Controllers\UserController@uploadProfile                      | web          |
|        | GET|HEAD  | users/create                  | users.create        | App\Http\Controllers\UserController@create                             | web          |
|        | GET|HEAD  | users/{user}                  | users.show          | App\Http\Controllers\UserController@show                               | web          |
|        | PUT|PATCH | users/{user}                  | users.update        | App\Http\Controllers\UserController@update                             | web          |
|        | DELETE    | users/{user}                  | users.destroy       | App\Http\Controllers\UserController@destroy                            | web          |
|        | GET|HEAD  | users/{user}/edit             | users.edit          | App\Http\Controllers\UserController@edit                               | web

what happened to my users.store route?

here is my route file

Auth::routes(['verify' => true]);

Route::get('/home', 'HomeController@index')->name('home');

Route::resource('users','UserController');
Route::post('users', 'UserController@uploadProfile')->name('users.uploadProfile'); 

I ran php artisan make:controller UserController -r command when I created the controller

the is a store method in the UserController file:

 public function store(Request $request)
    { 
        $this->validate($request,[
            'types' => 'required',
            'last_name' => 'required',
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'phone' => 'required|unique:users',
            'gender' => 'required',
            'identity' => 'required',
            'password' => 'required|string|min:8|confirmed',
            'street' => 'required',
            'suburb' => 'required',
            'city' => 'required',            
            'province' => 'required|not_in:0',
            'code' => 'required',
            'school' => 'required',
            'grade' => 'required|not_in:0'
        ]);

        $user = User::create([
            'types' => $request['types'],
            'last_name' => $request['last_name'],
            'name' => $request['name'],
            'email' => $request['email'],
            'phone' => $request['phone'],
            'password' => Hash::make($request['password']),
        ]);
        
1

1 Answers

0
votes

fix this

Route::resource('users','UserController');
Route::post('users', 'UserController@uploadProfile')->name('users.uploadProfile');// <-- this url is overwriting resource store url

to fix this post('users-profile') use different name

Route::resource('users','UserController');
Route::post('users-profile', 'UserController@uploadProfile')->name('users.uploadProfile');