Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

stefan94_sd's avatar

ReflectionException Class does not exist

Hello guys/girls. This is my first post, I apologize in advance if I'm not precise enough.

So i have a controller:

namespace App\Http\Controllers\Authenticated\Administration\Jackpot_Setup;

And I have 2 defined routes in web. php, which call newly made functions from this controller.

Route::match(array('GET', 'POST'), '/updateJPModelDetailsForAffiliate', 'Administration\JackPot_Setup\JackPotController@updateJPModelDetailsForAff');

Route::match(array('GET', 'POST'), '/testFunc', 'Administration\JackPot_Setup\JackPotController@testFunc');

public function testFunc(Request $request){ dd("sdadaa"); }

public function updateJPModelDetailsForAff(Request $request){ try { $authSessionData = Session::get('authenticated');

        $logged_in_id = $authSessionData['user_id'];
        $session_id = $authSessionData['id''];

        $subject_id = $request->input("subject_id");
        $model_id = $request->input("model_id");
        $priority = $request->input("priority");
        $local_level_on_off = $request->input("local_level_on_off");
        $global_level_on_off = $request->input("global_level_on_off");
        $current_amount = $request->input("current_amount");
        $inherit_from = $request->input("inherited_from");

        if($local_level_on_off == -1 && $global_level_on_off == -1){
            return response()->json([
                "status" => "NOK",
                "true_status" => "NOK",
                "message" => __ ("authenticate.At least one Jack-Pot must be active."),
                "success" => true
            ]);
        }else{
            $result = JackPotModel::updateJPModelDetailsForAff($subject_id, $model_id, $priority, $local_level_on_off, $global_level_on_off, $current_amount, $inherit_from);

            if($result["status"] == 1){
                return response()->json([
                    "status" => "OK",
                    "true_status" => $result["status"],
                    "success" => true,
                    "message" => __ ("authenticate.Success"),
                ]);
            }else{
                return response()->json([
                    "status" => "NOK",
                    "true_status" => $result["status"],
                    "success" => true,
                    "message" => __ ("authenticate.Fail"),
                ]);
            }
        }

    }catch(\PDOException $ex1){
        $message = $ex1->getMessage();
        ErrorHelper::writeError($message, $message);

        return response()->json([
            "status" => "NOK",
            "result" => null,
        ]);
    }catch(\Exception $ex2){
        $message = $ex2->getMessage();
        ErrorHelper::writeError($message, $message);

        return response()->json([
            "status" => "NOK",
            "result" => null,
            "message" => __("authenticated.Changes not saved"),
        ]);
    }
}

These functions generate error:

[2018-08-22 09:45:41] local.ERROR: ReflectionException: Class App\Http\Controllers\Authenticated\Administration\JackPot_Setup\JackPotController does not exist in /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Container/Container.php:729 Stack trace: #0 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Container/Container.php(729): ReflectionClass->__construct('App\Http\Contro...') #1 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Container/Container.php(608): Illuminate\Container\Container->build('App\Http\Contro...') #2 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Container/Container.php(575): Illuminate\Container\Container->resolve('App\Http\Contro...') #3 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(728): Illuminate\Container\Container->make('App\Http\Contro...') #4 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Route.php(217): Illuminate\Foundation\Application->make('App\Http\Contro...') #5 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Route.php(747): Illuminate\Routing\Route->getController() #6 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Route.php(708): Illuminate\Routing\Route->controllerMiddleware() #7 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Router.php(585): Illuminate\Routing\Route->gatherMiddleware() #8 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Router.php(565): Illuminate\Routing\Router->gatherRouteMiddleware(Object(Illuminate\Routing\Route)) #9 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Router.php(533): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request)) #10 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Router.php(511): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request)) #11 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request)) #12 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http{closure}(Object(Illuminate\Http\Request)) #13 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request)) #14 /var/www/html/tombolabackoffice/app/Http/Middleware/StartSession.php(24): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure)) #15 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure)) #16 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request)) #17 /var/www/html/tombolabackoffice/app/Http/Middleware/InputTrim.php(24): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request)) #18 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\InputTrim->handle(Object(Illuminate\Http\Request), Object(Closure)) #19 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request)) #20 /var/www/html/tombolabackoffice/app/Http/Middleware/PreventBackHistory.php(15): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request)) #21 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\PreventBackHistory->handle(Object(Illuminate\Http\Request), Object(Closure)) #22 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request)) #23 /var/www/html/tombolabackoffice/app/Http/Middleware/CacheKiller.php(40): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request)) #24 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\CacheKiller->handle(Object(Illuminate\Http\Request), Object(Closure)) #25 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request)) #26 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(30): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request)) #27 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure)) #28 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request)) #29 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(30): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request)) #30 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure)) #31 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request)) #32 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request)) #33 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure)) #34 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request)) #35 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request)) #36 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure)) #37 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request)) #38 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request)) #39 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\Pipeline\Pipeline->then(Object(Closure)) #40 /var/www/html/tombolabackoffice/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request)) #41 /var/www/html/tombolabackoffice/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) #42 {main}

The trick is, all other functions from this controller are executed well. Also, functions that cause a problem, work perfectly well on local server, development server is the problem.

Route that executes well:

Route::match(array('GET', 'POST'), '/getAffJPModelSettings', 'Administration\Jackpot_Setup\JackPotController@getAffJPModelSettings');

Tried with commands:

php artisan config:clear php artisan cache:clear php artisan view:clear

I am using Laravel for 2 years, working o this project for a few months, experiencing this for the first time, I am truly baffled. It must be something obvious, so another pair of eyes is welcomed.

0 likes
3 replies
stefan94_sd's avatar
stefan94_sd
OP
Best Answer
Level 1

GOD DAMN !

Local server is on Windows, development on Linux, which is case sensitive.

Route::match(array('GET', 'POST'), '/testFunc', 'Administration\JackPot_Setup\JackPotController@testFunc');

should be

Route::match(array('GET', 'POST'), '/testFunc', 'Administration\Jackpot_Setup\JackPotController@testFunc');

Because directory which contains JackPotController is Jackpot_Setup, not JackPot_Setup.

People, be on a lookout, don't overload yourself.

Cronix's avatar

People, be on a lookout, don't overload yourself.

Or develop on a vm with the same os as your production servers. Then this never happens.

Please or to participate in this conversation.