Подтвердить поле отдельной формы только в Symfony2
Я ищу способ проверить только одно поле (свойство объекта) на ограничения, указанные в аннотациях конкретной сущности.
Цель состоит в том, чтобы отправить запрос AJAX после события "onBlur" в поле формы, попросив сервер только проверить это единственное поле и, в зависимости от ответа, добавить небольшое "ОК" изображение рядом с этим полем или сообщение об ошибке.
Я не хочу проверять всю сущность.
Интересно, какой лучший подход для этой проблемы? Спасибо за любые советы.
Ответы
Ответ 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 включен пример.