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