我試圖創建一個表單,基於HTML表單字段中的選擇選項來更改字段的驗證。例如:如果用戶從下拉字段「選項」中選擇選項1,我希望字段「度量」驗證爲sfValidatorInteger。如果用戶從字段「選項」中選擇選項2,我希望字段「公制」驗證爲sfValidatorEmail等。Symonfy 1.4動態驗證可能嗎?
所以在公共函數configure(){我有switch語句來捕獲「options 「,並根據從」選項「返回的值創建驗證器。
1.)如何獲取「選項」的值?我已經試過:
$this->getObject()->options
$this->getTaintedValues()
,因此目前工作對我來說唯一的一點是,但它不是真正的MVC:
$params = sfcontext::getInstance()->getRequest()->getParameter('options');
2)當我已經捕捉到了這個信息,我該怎麼分配「度量」的值到不同的字段? (「度量」在db中不是真正的列)。所以我需要將「度量」的值分配給不同的領域,如「電子郵件」,「年齡」......目前我在後驗證器這樣處理這個問題,只是想知道我是否可以在配置中分配值):
$this->validatorSchema->setPostValidator(new sfValidatorCallback(array('callback' => array($this, 'checkMetric'))));
public function checkMetric($validator, $values) {
}
謝謝!
謝謝你的幫助!我以這種方式工作。我不知道mergePostValidator和$ validator-> clean()。 您是否知道將字段名稱附加到$ validator-> clean()?引發的錯誤消息的方法。在這種情況下,它將是'選項'字段。 – 2010-08-31 23:08:17