Я пытаюсь создать форму, которая изменяет проверку поля на основе опции выбора из поля формы html.Возможна ли динамическая проверка Symonfy 1.4?
Ex: если пользователь выбирает вариант 1 из раскрывающегося списка «параметры», я хочу, чтобы поле «метрика» проверялось как sfValidatorInteger. Если пользователь выбирает вариант 2 из поля «параметры», я хочу, чтобы поле «метрика» проверялось как sfValidatorEmail и т. Д.
Итак, внутри публичной функции configure() {У меня есть оператор switch, чтобы фиксировать значение «options» »и создать валидатор на основе этого значения, возвращенного из« параметров ».
1.) Как я могу определить значение «параметров»? Я пробовал:
$this->getObject()->options
$this->getTaintedValues()
Единственное, что в настоящее время работает для меня, но это не совсем MVC:
$params = sfcontext::getInstance()->getRequest()->getParameter('options');
2.) После того, как я захватил эту информацию, как можно назначить значение «метрики» в другое поле? («метрика» не является реальным столбцом в db). Поэтому мне нужно назначить значение «метрики» для разных полей, таких как «электронная почта», «возраст» ... В настоящее время я обрабатываю это на post validator, как это, просто интересно, могу ли я назначить значение в configure ():
$this->validatorSchema->setPostValidator(new sfValidatorCallback(array('callback' => array($this, 'checkMetric'))));
public function checkMetric($validator, $values) {
}
Спасибо!
Благодарим за помощь! Я заработал так. Я не знал о mergePostValidator и $ validator-> clean(). Знаете ли вы способ привязать имя поля к сообщению об ошибке, которое вызывается $ validator-> clean()?. В этом случае это будет поле «option». –