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

mmichaelbiz's avatar

php artisan route:list breaks when adding a Form Request in to Controller Constructor instead of Method Injecting

I created a class 'ArticleRequest' extending the Laravel Requests/Request class. This was method injected on to the store and update methods of my ArticleController and worked great.

I have since expanded on the ArticleRequest class to include further request handling for all request types (not just POST / PUT requests). It is now also used to check article requests in general (including GET requests) and so decided not to repeatedly inject on the methods and include it once in the ArticleController constructor instead. I achieved this by only passing the validation rules on the methods I needed:

    public function rules()
    {
        $rules = $this->rules;

        if(Request::isMethod('get') || Request::isMethod('delete'))
        {
            $rules = [];
        }
        return $rules;
    }

This is also working great, but as a peculiar side effect when I try to run:

php artisan route:list

I get:

[Symfony\Component\Debug\Exception\FatalErrorException]
  Call to a member function make() on null

My question is, is this error correct and should I change my implementation to use something other than the Laravel Request/Request in the Controller constructor or is this a bug in the Laravel artisan command route:list?

Full stack trace below.

PHP Fatal error:  Call to a member function make() on null in /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php on line 73
PHP Stack trace:
PHP   1. {main}() /home/vagrant/code/base/artisan:0
PHP   2. Illuminate\Foundation\Console\Kernel->handle($input = *uninitialized*, $output = *uninitialized*) /home/vagrant/code/base/artisan:36
PHP   3. Symfony\Component\Console\Application->run($input = *uninitialized*, $output = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:94
PHP   4. Symfony\Component\Console\Application->doRun($input = *uninitialized*, $output = *uninitialized*) /home/vagrant/code/base/vendor/symfony/console/Symfony/Component/Console/Application.php:126
PHP   5. Symfony\Component\Console\Application->doRunCommand($command = *uninitialized*, $input = *uninitialized*, $output = *uninitialized*) /home/vagrant/code/base/vendor/symfony/console/Symfony/Component/Console/Application.php:195
PHP   6. Illuminate\Console\Command->run($input = *uninitialized*, $output = *uninitialized*) /home/vagrant/code/base/vendor/symfony/console/Symfony/Component/Console/Application.php:874
PHP   7. Symfony\Component\Console\Command\Command->run($input = *uninitialized*, $output = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Console/Command.php:101
PHP   8. Illuminate\Console\Command->execute($input = *uninitialized*, $output = *uninitialized*) /home/vagrant/code/base/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257
PHP   9. Illuminate\Container\Container->call($callback = *uninitialized*, $parameters = *uninitialized*, $defaultMethod = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Console/Command.php:115
PHP  10. call_user_func_array:{/home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:523}(*uninitialized*, *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:523
PHP  11. Illuminate\Foundation\Console\RouteListCommand->fire() /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:523
PHP  12. Illuminate\Foundation\Console\RouteListCommand->getRoutes() /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:75
PHP  13. Illuminate\Foundation\Console\RouteListCommand->getRouteInformation($route = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:89
PHP  14. Illuminate\Foundation\Console\RouteListCommand->getMiddleware($route = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:109
PHP  15. Illuminate\Foundation\Console\RouteListCommand->getControllerMiddleware($actionName = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:142
PHP  16. Illuminate\Foundation\Application->make($abstract = *uninitialized*, $parameters = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:161
PHP  17. Illuminate\Container\Container->make($abstract = *uninitialized*, $parameters = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:642
PHP  18. Illuminate\Container\Container->build($concrete = *uninitialized*, $parameters = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:656
PHP  19. Illuminate\Container\Container->getDependencies($parameters = *uninitialized*, $primitives = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:813
PHP  20. Illuminate\Container\Container->resolveClass($parameter = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:848
PHP  21. Illuminate\Foundation\Application->make($abstract = *uninitialized*, $parameters = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:887
PHP  22. Illuminate\Container\Container->make($abstract = *uninitialized*, $parameters = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:642
PHP  23. Illuminate\Container\Container->fireResolvingCallbacks($abstract = *uninitialized*, $object = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:679
PHP  24. Illuminate\Container\Container->fireCallbackArray($object = *uninitialized*, $callbacks = *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:1052
PHP  25. Illuminate\Validation\ValidationServiceProvider->Illuminate\Validation\{closure}($resolved = *uninitialized*, *uninitialized*) /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:1089
PHP  26. Illuminate\Foundation\Http\FormRequest->validate() /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php:31
PHP  27. Illuminate\Foundation\Http\FormRequest->getValidatorInstance() /home/vagrant/code/base/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php:18
0 likes
1 reply

Please or to participate in this conversation.