2016-07-21 13 views
0

Ich habe eine peinliche Situation mit einer Methode, die an zwei verschiedenen Orten verwendet wird, erfordern also zwei verschiedene queryBuilders.Wählen Sie zwischen zwei QueryBuilders in einer Methode

An einer Stelle brauche ich die Methode, diese queryBuilder zu verwenden;

$queryBuilder = $this->getConfigurationPool()->getContainer()->get('doctrine')->getManager('admin')->createQueryBuilder(); 

Und woanders brauche ich die queryBuilder dies zu sein;

$queryBuilder = $this->get('doctrine')->getManager('admin')->createQueryBuilder(); 

Wie kann ich dies mit der gleichen Methode erreichen? Denn der Rest wird genauso sein, wenn ich zwei verschiedene Methoden anwende, und das fühlt sich unnötig an.

So etwas wie, versuchen Sie dieses und wenn nicht funktioniert fangen und versuchen Sie das andere.

+0

Wo sind diese Methoden, Controller, sercvice ... – Edu

+0

injizieren Sie den QueryBuilder in die Methode oder vorzugsweise in den Service/Klasse der Methode lebt. An einem Punkt auf dem Stapel, sollten Sie wissen und treffen die Entscheidung, welche QB Sie müssen verwenden. – Callistino

+0

Einer ist in einem Controller von Symfony-Controller und der andere Ort ist innerhalb von ConfigureListFields in einem Admin, der sich von Sonata Admin erstreckt –

Antwort

1

Geben Sie der Methode den richtigen QueryBuilder über einen Parameter.
Wenn Sie QueryBuilder1 möchten.

$queryBuilder1 = .......; 
callOfFunction($queryBuilder1); 

gleiche gilt für Querybuilder2 OFC.

Verwandte Themen