2011-11-24 78 views
1

正如標題所暗示的,我有一個選擇字段(電臺html輸入),在我的表單中必須有一個選擇,才允許用戶繼續。驗證Symfony2表單中非實體字段的最佳方法是什麼?

我已經嘗試添加驗證到我的validation.yml文件中的捆綁(拋出一個錯誤,說該字段不是一個有效的實體字段),我也嘗試直接在表單代碼中添加驗證程序,但收到一個例外,因爲驗證器類不執行FormValidatorInterface(代碼如下)。

$builder->addValidator(new CallbackValidator(function(FormInterface $form) { 
    if(!$form['has_subalbums']->getData()) 
    { 
     $form->addError(new FormError('Please indicate sub albums')); 
    } 
})); 

什麼是驗證非實體字段的正確方法?

+1

看到這裏的Symfony 2.1完美的答案: [Symfony的2:添加自定義表單元素,而不是在一個實體] [1] [1]:http://stackoverflow.com/q/10950203/354578 – Gregoire

回答

5

嘗試:

使用的Symfony \分量\形式表; [...]

$builder->addValidator(new Form\CallbackValidator(function($form) { 
if(!$form['has_subalbums']->getData()) 
{ 
    $form->addError(new Form\FormError('Please indicate sub albums')); 
} 
})); 
+5

這在Symfony 2.1中已被棄用。有沒有辦法在Symfony 2.1中做到這一點? – Mick

相關問題