我想驗證我的symfony2表單中的未綁定字段。如何將驗證添加到symfony2中的未綁定表單字段
我搜索了它,發現了幾個類似的解決方案,所以我做了一個複製粘貼,並把我自己的東西放在那裏,但它不適用於我。可能有一個使用聲明或者是我讀過的所有解決方案中都沒有的東西,因爲每個人都知道它們是必要的,所以省略了。除了這裏的菜鳥。
我的代碼:
<?php
namespace BizTV\UserBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Validator\Constraints\CallbackValidator as CallbackValidator;
use Symfony\Component\Form\FormValidatorInterface;
use Doctrine\ORM\EntityRepository;
class newServerType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('company', 'entity', array(
'label' => 'Vilket företag tillhör servern? ',
'multiple' => FALSE,
'expanded' => FALSE,
'property' => 'companyName',
'class' => 'BizTV\BackendBundle\Entity\company',
));
$builder->add('screenName', null, array('property_path' => false, 'label' => 'Namn på skärmen (användaren kan ändra det senare) '));
$builder-> addValidator(new CallbackValidator(function(FormInterface $form){
$screenName = $form['screenName'];
if (empty($screenName)) {
$form['screenName']->addError(new FormError("Du måste ange ett namn för den nya skärmen"));
}
}));
$builder
->add('username', 'text', array('label' => 'Servernamn (endast för serverns login samt vår referens)'))
->add('plainPassword', 'repeated', array('type' => 'password', 'first_name' => 'Lösenord för server ', 'second_name' => 'Upprepa lösenord för server',));
}
public function getName()
{
return 'biztv_userbundle_newservertype';
}
}
我的錯誤:
Catchable Fatal Error: Argument 1 passed to Symfony\Component\Form\FormBuilder::addValidator() must implement interface Symfony\Component\Form\FormValidatorInterface, instance of Symfony\Component\Validator\Constraints\CallbackValidator given, called in /var/www/biztv_symfony/src/BizTV/UserBundle/Form/newServerType.php on line 35 and defined in /var/www/biztv_symfony/vendor/symfony/src/Symfony/Component/Form/FormBuilder.php line 255
此方法在2.1中已棄用。請參閱以下線程以獲取更多詳細信息:http://stackoverflow.com/questions/12911686/symfony-validate-form-with-mapped-false-form-fields – 2013-07-30 16:34:33
調用未定義的方法Symfony \ Component \ Form \ FormBuilder :: addValidator () – afilina 2015-07-07 14:32:35