Пользовательский ограничитель проверки с зависимостью соединения с базой данных Symfony2
Я добавляю пользовательский запрос проверки в проект Symfony2.
Документы не хватает полного примера, и я не уверен, как на самом деле внедрить соединение с базой данных в класс Validator. Я создал службу в моей конфигурации, добавил метод псевдонима validatedBy в свой класс Constraint и настроил его в своем классе Validator:
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);
...
Вот мой сервисный конфиг:
validator.node.zip_in_database:
class: Acme\Bundle\Validator\Constraints\ZipDatabaseValidator
arguments: [@database_connection]
tags:
- { name: validator.constraint_validator, alias: zip_in_database }
Я продолжаю получать ошибки, в этом случае:
Исправляемая фатальная ошибка: аргумент 1 передан в Acme \ Bundle \ Validator \ Constraints \ ZipDatabaseValidator :: __ construct () должен быть экземпляром Doctrine \ DBAL \ Connection, ни один не задан,
Как, черт возьми, настроить это как службу или иным образом внедрить подключение к базе данных?