как мне вернуть не определенный маршрут?

#laravel

#laravel

Вопрос:

Я пытаюсь создать пользователя, но получаю следующую ошибку: маршрут [users.store] не определен. (Просмотр: C:xampphtdocslaravel-sbresourcesviewsbackendusercreate.blade.php )… но когда я запускаю команду route:list, я получаю:

 |        | POST      | users                         | users.uploadProfile | AppHttpControllersUserController@uploadProfile                      | web          |
|        | GET|HEAD  | users/create                  | users.create        | AppHttpControllersUserController@create                             | web          |
|        | GET|HEAD  | users/{user}                  | users.show          | AppHttpControllersUserController@show                               | web          |
|        | PUT|PATCH | users/{user}                  | users.update        | AppHttpControllersUserController@update                             | web          |
|        | DELETE    | users/{user}                  | users.destroy       | AppHttpControllersUserController@destroy                            | web          |
|        | GET|HEAD  | users/{user}/edit             | users.edit          | AppHttpControllersUserController@edit                               | web
  

что случилось с моим маршрутом users.store?

вот мой файл маршрута

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

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

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

При создании контроллера я запустил команду php artisan make:controller UserController -r

это метод сохранения в файле UserController:

  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:

исправьте это

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

чтобы исправить это post('users-profile') , используйте другое имя

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