Benutzerdefinierter Constraint Validator mit Datenbankverbindungsabhängigkeit Symfony2

Ich füge einem Symfony2-Projekt eine benutzerdefinierte Überprüfungsabfrage hinzu.

Die Dokumente Fehlt ein vollständiges Beispiel, und ich bin nicht sicher, wie ich die Datenbankverbindung tatsächlich in die Validator-Klasse einfügen soll. Ich habe den Dienst in meiner Konfiguration erstellt, die validatedBy-Alias-Methode in meiner Constraint-Klasse hinzugefügt und dies in meiner Validator-Klasse eingerichtet:

use Doctrine\DBAL\Connection;

class ZipDatabaseValidator extends ConstraintValidator
{

    /**
     *
     * @var Connection
     */
    private $connection;

   public function __construct(Connection $dbalConnection)  {

        $this->connection = $dbalConnection;
    }

    public function validate($zipcode, Constraint $constraint)
    {

        $sql = 'SELECT * FROM zip_table WHERE zip_code = ?';
        $stmt = $this->connection->prepare($sql); 
         ...

Hier ist meine Service-Konfiguration:

validator.node.zip_in_database:
        class: Acme\Bundle\Validator\Constraints\ZipDatabaseValidator
        arguments: [@database_connection]
        tags:
            - { name: validator.constraint_validator, alias: zip_in_database }

Ich bekomme immer wieder Fehler, in diesem Fall:

Abfangbarer schwerwiegender Fehler: Argument 1 wurde an Acme \ Bundle \ Validator \ Constraints \ ZipDatabaseValidator übergeben. :: __ construct () muss eine Instanz von Doctrine \ DBAL \ Connection sein.

Wie zum Teufel soll ich das als Dienst einrichten oder anderweitig die Datenbankverbindung einspeisen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage