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