Wie zu injizieren, nicht-Standard-entity-Manager?
In Symfony2 können Sie arbeiten mit mehreren entity-Manager und verwenden Sie so etwas wie den folgenden code:
$em = $this->get('doctrine')->getManager();
$em = $this->get('doctrine')->getManager('default');
$customerEm = $this->get('doctrine')->getManager('customer');
Können wir injizieren die Standard-manager zu jedem Dienst mit:
"@doctrine.orm.entity_manager"
Wie kann man seinen nicht-Standard-entity-Manager in die Dienste?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr entity-Manager config name ist
non_default
dann können Sie darauf verweisen, wie@doctrine.orm.non_default_entity_manager
php app/console container:debug
Befehl, um es zu überprüfen.Definieren Sie Ihre benutzerdefinierte Entität-manager als Dienst:
Dann können Sie injizieren es in der gleichen Weise, wie Sie mit jedem service:
Bearbeiten:
Achten Sie darauf, dass die factory-Methode kann sich zwischen symfony-version (könnte es sein
getEntityManager
odergetManager
)Für diejenigen, die mit Symfony 3+, verwenden Sie die console :
php bin/console debug:container
Dann sollten Sie sehen, viele Zeilen, beginnend mit : 'Lehre.orm.MY_CUSTOM_ENTITY_MANAGER_xxxxxxxxxx'
Also, wenn Sie wollen, dass der entity-manager entsprechend Ihrer benutzerdefinierten Entität-manager, suchen Sie die Zeile :
'Lehre.orm.MY_CUSTOM_ENTITY_MANAGER_entity_manager'
Können Sie es in Ihrer service-Argumente.
Hoffe, es hilft.
Hallo erstmal an alle, erstellen Ihre manager, in meinem Beispiel erstelle ich den manager für mein Element-Klasse, die in einer CoreBundle:
Wenn die manager-Struktur von mehreren manager erstellen Sie ein BaseManager erweitert, durch das alle anderen Führungskräfte !
Dann registrieren Sie es in die Dienstleistungen.yml (oder xml -) Datei von Ihrem bundle:
Das ist es, Sie können es nun verwenden:
Können Sie dann verbessern Sie Ihre manager, hier gebe ich ein array von config-Parametern zu meinem manager:
Wenn Sie eine BaseManager, Sie können auch eine nützliche generische Methode zur Initialisierung eines Objekts: