具有依赖注入的控制器不起作用

When I inject the Request class of Simfony it works well for me, but I just created a class called FormRequest that "extends" from Request, I thought this would work, since it is still a Request instance, but it is not, I get an error.

Type error: Argument 1 passed to AppBundle\Http\Controllers\BlogController::validateAction() must be an instance of AppBundle\Http\FormRequest, instance of Symfony\Component\HttpFoundation\Request given, called in /var/www/html/api-erp/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php on line 151
Exception

My class FormRequest.php:

namespace AppBundle\Http;

use Symfony\Component\HttpFoundation\{JsonResponse, Request, Response};

class FormRequest extends Request 
{

}

Controller BlogController.php is:

<?php

namespace AppBundle\Http\Controllers;

use AppBundle\Http\FormRequest;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\{Request, JsonResponse};
use Symfony\Component\Routing\Annotation\Route;

class BlogController extends Controller
{
    /**
     * @Route("/blog", name="blog_index")
    */
    public function validateAction(FormRequest $request)
    {
        return new JsonResponse(['success' => true]);
    }
}

Simfony versión: 3.4.*

You missing something.

Symfony use the ParamConverter feature to inject the request in your action. If you want to override it you also have to create a custom converter and use the correct priority in the service to avoid the error.

More explanation in symfony documentation