In meinem Bündel Ich brauche meine Lehre Manager-Klasse initialisiert werden (als Dienst und mit ManagerRegistry) in Konstruktor-Controller, aber symfony wirft immer noch diese Ausnahme:Lehre Managerklasse Injektion Controller funktioniert nicht
Type error: Too few arguments to function AdminBundle\Controller\RegistraceController::__construct(), 0 passed in C:\apache\htdocs\mujProjekt\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Controller\ControllerResolver.php on line 198 and exactly 1 expected
Controller:
namespace AdminBundle\Controller;
use AdminBundle\Manager\AdminManager;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
/**
* Class DefaultController
* @package AdminBundle\Controller
* @Route("/registrace")
*/
class RegistraceController extends Controller
{
/**
* @var AdminManager
*/
private $manager;
public function __construct(AdminManager $manager)
{
$this->manager = $manager;
}
...
Adminmanager:
namespace AdminBundle\Manager;
use AdminBundle\Entity\Uzivatel;
use Doctrine\Common\Persistence\ManagerRegistry;
class AdminManager
{
private $em;
public function __construct(ManagerRegistry $Doctrine)
{
$this->em = $Doctrine->getManager('default');
}
...
AdminBundle \ Resour ces \ config \ services.yml:
services:
# admin.example:
# class: AdminBundle\Example
# arguments: ["@service_id", "plain_value", "%parameter%"]
admin.admin_manager:
class: AdminBundle\Manager\AdminManager
arguments:
["@doctrine"]
Ich habe versucht, den Cache zu löschen, aber keinen Erfolg. Die services.yml von AdminBundle ist korrekt in config.yml enthalten.
orm config in config.yml:
orm:
auto_generate_proxy_classes: '%kernel.debug%'
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
AdminBundle: ~
Ich bin mit Symfony 3.3 und PHP 7.1.
Da Sie mit S3.3 sind + Sie vielleicht einen Blick nehmen, um Ihre Admin Service direkt in die Aktion zu injizieren: http://symfony.com/doc/current/controller.html#controller-accessing-services Das ist alles neue Sachen, also wenn Sie älteren Tutorials folgen, dann wird es leicht sein, verwirrt zu werden. – Cerad
Danke Cerad für deinen Tipp! Es ist eine nützliche Funktion und funktioniert jetzt gut in meinem Controller. – AtT0mX