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