2012-08-29 55 views
20

我用我的symfony表單進行了一些複雜的驗證,我需要能夠從我的控制器爲特定字段分配一個錯誤。現在,我已經這樣工作全局錯誤:在symfony2中添加一個來自控制器的字段特定錯誤

$error = new formerror("There is an error with the form"); 
$form->addError($error); 

但是,創建一個全球性的錯誤,而不是一個綁定到特定的字段。

有沒有辦法從我的控制器上的特定字段發生錯誤?

回答

44

感謝一些關於IRC的幫助(謝謝@fkrauthan!),我想出了一個答案。

SF2中的每個字段實際上都是一種形式的實例。你需要做的是訪問字段的表單對象,然後將錯誤添加到它。謝天謝地,symfony提供了一種獲取嵌入式表單/字段的方法。

繼承人我的代碼:

$error = new FormError("There is an error with the field"); 
$form->get('field')->addError($error); 

正如一些人所指出的那樣,你將需要包括FormError類在你的文件的頂部: use Symfony\Component\Form\FormError;

+0

不錯! :)你能接受你的答案嗎? –

+0

堆棧溢出不允許您在前兩天接受自己的答案。 – MrGlass

+0

啊,沒錯。不要忘記稍後再做; –

相關問題