Hallo Community,
ich versuche mich gerade an dem Backend-Routing in den Developer-Guides.
Das Ganze hat auch ganz gut funktioniert, mit einem kleinen Fehler, den ich zwar umgehen, aber nicht beheben konnte.
In meiner BackendController.php steht folgendes:
Im Errorlog kommt folgendes an:PHP-Code:// src/Controller/BackendController.php
namespace Fnjs\Test\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use Twig\Environment as TwigEnvironment;
/**
* @Route("/contao/my-backend-route",
* name=BackendController::class,
* defaults={
* "_scope" = "backend",
* "_token_check" = true,
* "_backend_module" = "my-module"
* }
* )
*/
class BackendController extends AbstractController
{
private $twig;
public function __construct(TwigEnvironment $twig)
{
$this->twig = $twig;
}
public function __invoke()
{
return new Response($this->twig->render(
'my_backend_route.html.twig',
[]
));
}
}
Code:[2020-06-02 23:51:36] request.INFO: Matched route "Fnjs\Test\Controller\BackendController". {"route":"Fnjs\\Test\\Controller\\BackendController","route_parameters":{"_route":"Fnjs\\Test\\Controller\\BackendController","_scope":"backend","_token_check":true,"_backend_module":"my-module","_controller":"Fnjs\\Test\\Controller\\BackendController"},"request_uri":"https://domain.tld/contao/my-backend-route","method":"GET"} [] [2020-06-02 23:51:36] request.CRITICAL: Uncaught PHP Exception ArgumentCountError: "Too few arguments to function Fnjs\Test\Controller\BackendController::__construct(), 0 passed in domain.tld/contao49/var/cache/prod/ContainerC1spTpy/getBackendController2Service.php on line 13 and exactly 1 expected" at domain.tld/contao49/bundles/fnjs/test/src/Controller/BackendController.php line 24 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Too few arguments to function Fnjs\\Test\\Controller\\BackendController::__construct(), 0 passed in domain.tld/contao49/var/cache/prod/ContainerC1spTpy/getBackendController2Service.php on line 13 and exactly 1 expected at domain.tld/contao49/bundles/fnjs/test/src/Controller/BackendController.php:24)"} []
Hier scheint es ein Problem mit dem Constructor zu geben.
Muss ich hier noch etwas zusätzliches in meiner services.yml / listener.yml angeben?
Derzeit verwende ich autowiring/autoconfigurate.
listener.yml:
services.ymlCode:services: _defaults: autoconfigure: true Fnjs\Test\EventListener\GeneratePageListener: ~ Fnjs\Test\Controller\ContentElement\TestElementController: ~ Fnjs\Test\Controller\BackendController: ~ Fnjs\Test\Controller\FrontendExportController: ~ Fnjs\Test\EventListener\BackendMenuListener: arguments: - "@router" - "@request_stack" tags: - { name: kernel.event_listener, event: contao.backend_menu_build, method: onBuild, priority: -255 }
Hat hier vielleicht jemand eine Idee, wie ich die Probleme mit dem Constructor lösen könnte?Code:# config/services.yaml services: # default configuration for services in *this* file _defaults: autowire: true # Automatically injects dependencies in your services. autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
Selbige Probleme habe ich auch, wenn ich versuche einen eigenen Service zu injecten.
Ich nehme an, dass ich hier in der services.yml noch etwas definieren muss.
			
					
					
					
						
Zitieren