2011-06-15 82 views
2

我有一個包含embededForms的表單。在嵌入表單中顯示symfony驗證後錯誤

後驗證:

$this->validatorSchema->setPostValidator(
    new sfValidatorCallback(
    array('callback' => array($this, 'myPostValidator')) 
) 
); 

我扔在myPostValidator方法錯誤:

$error = new sfValidatorError($validator, 'invalid ' . $values['embededform1']['field']); 
throw new sfValidatorErrorSchema($validator, array('field' => $error)); 

現在我得到了根形式的全局錯誤。

我想在正確的字段旁邊顯示錯誤。

$values['embededform1']['field'] 
+0

https://groups.google.com/group/symfony-devs/browse_thread/thread/c116a783b1d8fe82?pli=1 – Uwe 2011-06-16 08:06:21

+1

Uwe:那個鏈接是關於Symfony2的,這是一個完全不同的主題。 – Gerry 2011-06-16 08:25:45

+0

postvalidator設置在哪裏?在嵌入式表單中還是在容器表單中? – Gerry 2011-06-16 08:27:28

回答

1

我的第一個建議是在嵌入式表單中添加post驗證器。嵌入它將複製驗證器到容器窗體,並且用於引發異常的代碼應按預期工作。

替代你可以試試你的容器形式回調如下:

$error = new sfValidatorError($validator, 'invalid'); 
$errorschema = new sfValidatorErrorSchema($validator, array('field' => $error)); 
throw new sfValidatorErrorSchema($validator, array('embeddedformname' => $errorschema)); 
+1

不幸的是,在驗證容器表單時,嵌入式表單中的驗證器不會運行。 – 2011-12-25 22:22:14

+0

這不是真的,它們在嵌入到容器表單時被複制,就像整個validatorschema一樣。 – Gerry 2011-12-26 10:30:52

0
$error = new sfValidatorError($validator, 'invalid'); 
$errorschema = new sfValidatorErrorSchema($validator, array('field' => $error)); 
throw new sfValidatorErrorSchema($validator, array('embeddedformname' => $errorschema)); 

這爲我工作。

相關問題