Class App\Http\Controllers\UserController Does Not Exist

后端 未结 6 2565
忘掉有多难
忘掉有多难 2020-12-11 04:04

Having the issue when loading the route /users or /user/add and being return an error of;

ReflectionException in Route.php line 280: Class App\\Http

相关标签:
6条回答
  • 2020-12-11 04:12

    The create method was missing the correct array brackets.

    User::create([
                'email' => $input['email'],
                'password' => Hash::make($password),
                'first_name' => $input['first_name'],
                'surname' => $input['surname'],
                'phone_number' => $input['phone_number'],
                'user_type' => $input['user_type'],
            ]);
    
    0 讨论(0)
  • 2020-12-11 04:13

    Laravel 8 updated the Route format, please try the updated format on controllers routes.

    use App\Http\Controllers\UserController;

    Route::get('/user', [UserController::class, 'index']);

    Fixed.

    0 讨论(0)
  • 2020-12-11 04:13
    Route::get('/', 'api\AppController@appInfo');
    

    I created AppController in controller/api folder so this is my path. You need to give path till your controller.

    0 讨论(0)
  • 2020-12-11 04:17

    Laravel 8.x update has a different way of using routes.

    Previously it was:

    Route::get('/', 'PagesController@index');
    

    Now it has changed to

    Route::get('/',[PagesController::class, 'index']);
    

    Note: don't forget to import (use) your controller in the routes(web.php) file at the top. Like:

    use App\Http\Controllers\PagesController;
    
    0 讨论(0)
  • 2020-12-11 04:29

    use App\Http\Controllers\UserController;

    Route::get('/user', [UserController::class, 'index]);

    Laravel 8 has updated the route format. above route will only only for laravel 8 or higher

    if you laravel below 8 try using

    Route::get('/user', 'UserController@index');

    0 讨论(0)
  • 2020-12-11 04:31

    Replace this code

    Route::group(['middleware' => 'isAdmin'], function(){
        Route::get('/admin', 'AdminController@index');
    
        Route::get('/users', 'UserController@index');
        Route::get('/user/add', 'UserController@getAdd');
        Route::post('/user/add', 'UserController@postAdd');
        Route::get('/user/edit/{id}', 'UserController@getEdit');
        Route::post('/user/edit/{id}', 'UserController@postEdit');
        Route::get('/user/delete/{id}', 'UserController@delete');
    });
    

    with this

    Route::group(['middleware' => 'isAdmin'], function(){
        Route::get('/admin', 'AdminController@index');
        Route::group(['namespace' => YOUR_NAMESPACE], function(){
            Route::get('/users', 'UserController@index');
            Route::get('/user/add', 'UserController@getAdd');
            Route::post('/user/add', 'UserController@postAdd');
            Route::get('/user/edit/{id}', 'UserController@getEdit');
            Route::post('/user/edit/{id}', 'UserController@postEdit');
            Route::get('/user/delete/{id}', 'UserController@delete');
        });
    });
    

    & in your UserController you should correct your namespace also

    e.g your UserController resides in app/Controllers directory then your UserController will be like this

    <?php
    
    namespace App\Controllers;
    
    use App\Http\Requests;
    use App\User;
    use App\UserTypes;
    
    use Auth;
    use Hashids;
    use Redirect;
    use Request;
    use Hash;
    
    class UserController extends Controller
    {
        public function index(){
            $users = User::get();
            return view('users.index', compact('users'));
        }
    
        public function getAdd(){
            $user_type = UserTypes::pluck('user_type', 'id');
            return view('users.add', compact('user_type'));
        }
    
        public function postAdd(){
            $input = Request::all();
            $password = str_random(8);
            User::create(
                'email' => $input['email'],
                'password' => Hash::make($password),
                'first_name' => $input['first_name'],
                'surname' => $input['surname'],
                'phone_number' => $input['phone_number'],
                'user_type' => $input['user_type'],
            );
    
            return Redirect::action('UserController@index');
        }
    
        public function getEdit($id){
    
        }
    
        public function postEdit($id){
    
        }
    
        public function delete($id){
            User::find(current(Hashids::decode($id)))->delete();
            return Redirect::action('UserController@index');
        }
    
    }
    

    & your route will be like this

    Route::group(['middleware' => 'auth'], function(){
        Route::get('/route/selector', 'PagesController@selectRoute');
    
        // Admin Only //
        Route::group(['middleware' => 'isAdmin'], function(){
            Route::get('/admin', 'AdminController@index');
            Route::group(['namespace' => '\App\Controllers'], function(){
                Route::get('/users', 'UserController@index');
                Route::get('/user/add', 'UserController@getAdd');
                Route::post('/user/add', 'UserController@postAdd');
                Route::get('/user/edit/{id}', 'UserController@getEdit');
                Route::post('/user/edit/{id}', 'UserController@postEdit');
                Route::get('/user/delete/{id}', 'UserController@delete');
            });
        });
    });
    
    0 讨论(0)
提交回复
热议问题