Ich habe eine Variable in parameters.ini gesetzt, aber jetzt möchte ich diese Variable aus einem EntityRepository abrufen und $this->container
ist nicht gesetzt, also kann ich es nicht tun
Wie komme ich zu dem Container?
Danke :)
Ich habe eine Variable in parameters.ini gesetzt, aber jetzt möchte ich diese Variable aus einem EntityRepository abrufen und $this->container
ist nicht gesetzt, also kann ich es nicht tun
Wie komme ich zu dem Container?
Danke :)
Bro, Symfony manchmal oder viele Male ist ein Kopfschmerz, hier ist ein hacky Weg, ist nicht die richtige wie die @Tuong Le Antwort, sondern ist ein Horror tun eine Menge für nur eine Variable wie war sagt @keyboardSmasher.
Am Anfang der Funktion/Methode:
global $kernel;
if($kernel instanceOf \AppCache) $kernel = $kernel->getKernel();
Sie können also auf einen Container mit
$kernel->getContainer();
Ich hoffe, das gibt Ihnen Zeit für einen Spaziergang im Park =),
Wenn Sie versuchen, von der EntityRepository-Klasse aus auf DBAL zuzugreifen, können Sie $this->getEntityManager()->getConnection() verwenden, um es zu erhalten.
Ex:
class CustomRepository extends EntityRepository
{
public function myCustomFunction()
{
$conn = $this->getEntityManager()->getConnection();
$stmt = $conn->query($sql);
if ($stmt)
{
while ($row = $stmt->fetch())
var_dump($row);
}
}
}
Sie können Ihre Variable wie gewohnt vom Controller abrufen und sie an das EntityRepository übergeben, wenn Sie eine benutzerdefinierte Repository-Methode definieren. Zum Beispiel:
public function findAllOrderedByFoo($your_variable)
{
//use $your_variable here
return $this->getEntityManager()
->createQuery( your SQL here )
->getResult();
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.