Подтвердить что ты не робот

Подтвердить поле отдельной формы только в Symfony2

Я ищу способ проверить только одно поле (свойство объекта) на ограничения, указанные в аннотациях конкретной сущности.

Цель состоит в том, чтобы отправить запрос AJAX после события "onBlur" в поле формы, попросив сервер только проверить это единственное поле и, в зависимости от ответа, добавить небольшое "ОК" изображение рядом с этим полем или сообщение об ошибке.

Я не хочу проверять всю сущность.

Интересно, какой лучший подход для этой проблемы? Спасибо за любые советы.

4b9b3361

Ответ 1

Класс Validator имеет метод validateProperty. Вы можете использовать его следующим образом:

$violations = $this->get('validator')->validateProperty($entity, 'propertyName');
if (count($violations)) {
    // the property value is not valid
}

Или, если значение не задано в сущности, вы можете использовать метод validatePropertyValue:

$violations = $this->get('validator')->validatePropertyValue($entity, 'propertyName', $propertyValue);
if (count($violations)) {
    // the property value is not valid
}

Ответ 2

Посмотрите группы проверки. Я думаю, что это то, что вам нужно. Вы можете добавить группу "ajax" или просто добавить к ней одно ограничение. Затем скажите валидатору, чтобы использовать эту группу. В symfony2 docs включен пример.