我正在尝试创建一个表单,该表单根据 html 表单字段中的选择选项更改字段的验证。
例如:如果用户从下拉字段“选项”中选择选项 1,我希望字段“指标”验证为 sfValidatorInteger。如果用户从字段“选项”中选择选项 2,我希望字段“指标”验证为 sfValidatorEmail 等。
所以在公共函数 configure() { 我有 switch 语句来捕获“选项”的值,并根据从“选项”返回的值创建验证器。
1.) 如何获取“选项”的价值?我试过了:
$this->getObject()->options
$this->getTaintedValues()
目前唯一对我有用的是,但它并不是真正的 MVC:
$params = sfcontext::getInstance()->getRequest()->getParameter('options');
2.) 一旦我捕获了这些信息,我如何将“metric”的值分配给不同的字段?(“公制”不是数据库中的真实列)。所以我需要将“metric”的值分配给不同的字段,例如“email”,“age”......目前我正在像这样的 post 验证器处理这个,只是想知道我是否可以在 configure( ):
$this->validatorSchema->setPostValidator(new sfValidatorCallback(array('callback' => array($this, 'checkMetric'))));
public function checkMetric($validator, $values) {
}
谢谢!