Ошибка: класс не имеет конструктора, вызванного использованием abstractController symfony4.2?
Пожалуйста, можете ли вы сказать мне, что, как использовать AbstractController в Symfony4.2 и как внедрить сервисы в Контроллере Contruct?
nameSpace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class homeController extends AbstractController
{
/**
* @return Response
* @Route("/home", name="home")
*/
public function index():Response
{
return $this->render('pages/home.html.twig');
}
}
как внедрить сервисы в конструктор контроллера?
0 ответов
Вы должны указать требуемую службу в качестве аргумента конструктора контроллера. А затем назначьте службу параметру вашего контроллера. Например:
public function construct(StringValidator $stringValidator)
{
$this->stringValidator = $stringValidator;
}
Не забудьте объявить $stringValidator в своих параметрах, а также указать необходимое пространство имен Service! В случае включения
autowiring
в вашем
services.yaml
вам даже не нужно передавать аргумент Service вручную. Это все. Вы можете воспользоваться вашим сервисом сейчас.