samedi 17 octobre 2015

artisan route:list not working

When Type-hinting a custom request into the construct method in a controller, the command php artisan route:list stops working. For me it seemed to be like a bug because it works perfectly through HTTP Request, it only fails when using artisan route:list. Opening an issue at laravel/framework I was kind of ignored.

Output:

C:\wamp\www\projects\linus>php artisan route:list
PHP Fatal error:  Call to a member function make() on null in C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Foundation\Http\FormRequest.php on line 76
PHP Stack trace:
PHP   1. {main}() C:\wamp\www\projects\linus\artisan:0
PHP   2. Illuminate\Foundation\Console\Kernel->handle() C:\wamp\www\projects\linus\artisan:36
PHP   3. Symfony\Component\Console\Application->run() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php:107
PHP   4. Symfony\Component\Console\Application->doRun() C:\wamp\www\projects\linus\vendor\symfony\console\Application.php:126
PHP   5. Symfony\Component\Console\Application->doRunCommand() C:\wamp\www\projects\linus\vendor\symfony\console\Application.php:195
PHP   6. Illuminate\Console\Command->run() C:\wamp\www\projects\linus\vendor\symfony\console\Application.php:878
PHP   7. Symfony\Component\Console\Command\Command->run() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Console\Command.php:136
PHP   8. Illuminate\Console\Command->execute() C:\wamp\www\projects\linus\vendor\symfony\console\Command\Command.php:259
PHP   9. Illuminate\Container\Container->call() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Console\Command.php:150
PHP  10. call_user_func_array:{C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Container\Container.php:503}() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Container\Container.php:503
PHP  11. Illuminate\Foundation\Console\RouteListCommand->fire() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Container\Container.php:503
PHP  12. Illuminate\Foundation\Console\RouteListCommand->getRoutes() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteListCommand.php:76
PHP  13. Illuminate\Foundation\Console\RouteListCommand->getRouteInformation() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteListCommand.php:89
PHP  14. Illuminate\Foundation\Console\RouteListCommand->getMiddleware() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteListCommand.php:119
PHP  15. Illuminate\Foundation\Console\RouteListCommand->getControllerMiddleware() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteListCommand.php:151
PHP  16. Illuminate\Foundation\Application->make() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteListCommand.php:170
PHP  17. Illuminate\Container\Container->make() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Foundation\Application.php:674
PHP  18. Illuminate\Container\Container->build() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Container\Container.php:627
PHP  19. Illuminate\Container\Container->getDependencies() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Container\Container.php:772
PHP  20. Illuminate\Container\Container->resolveClass() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Container\Container.php:801
PHP  21. Illuminate\Foundation\Application->make() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Container\Container.php:838
PHP  22. Illuminate\Container\Container->make() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Foundation\Application.php:674
PHP  23. Illuminate\Container\Container->fireResolvingCallbacks() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Container\Container.php:646
PHP  24. Illuminate\Container\Container->fireCallbackArray() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Container\Container.php:985
PHP  25. Illuminate\Validation\ValidationServiceProvider->Illuminate\Validation\{closure}() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Container\Container.php:1020
PHP  26. Illuminate\Foundation\Http\FormRequest->validate() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Validation\ValidationServiceProvider.php:32
PHP  27. Illuminate\Foundation\Http\FormRequest->getValidatorInstance() C:\wamp\www\projects\linus\vendor\laravel\framework\src\Illuminate\Validation\ValidatesWhenResolvedTrait.php:20



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

```

Controller

class TicketController extends Controller {

    protected $ticket;
    protected $request;

    function __construct(TicketRequest $request, Ticket $ticket) {
        $this->ticket = $ticket;
        $this->request = $request;
    }

    ...

}

If I remove the TicketRequest type-hint variable, the command works as expected. However, when making HTTP Requests, the Type-hint doesn't show any problem. In fact, the authorize method in it works just fine.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire