[英]the form is always valid in symfony2
我有一個帶有此驗證的表格:
# ITW/UserBundle/Resources/config/validation.yml
ITW\UserBundle\Entity\User:
properties:
name:
- NotBlank: ~
- Length: { min: 800 }
我正在檢查這樣的表格:
// ITW/UserBundle/Controller/UserController.php
$entity = new User();
$form = $this->createForm(new UserType(), $entity);
$form->handleRequest($request);
if ($form->isValid()) {
echo "valid!";
}
在config.yml
,驗證為:
validation: { enabled: true }
但是,當我提交帶有空name
字段的表單時, $form->isValid()
始終返回True
!
我不知道怎么了!
我確定validation.yml
正確加載(如當我使用無效的字段名symfony給出異常時)
問題出在哪兒?
Symfony版本為2.5.6
,我也嘗試使用2.5.5
我也嘗試使用getters
約束目標的字段name
並得到相同的結果。
我的UserType
是:
namespace ITW\UserBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use ITW\UserBundle\Entity\User;
class UserType extends AbstractType
{
public function __construct(){}
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name','text',array('required' => true,'label'=>'name'))
->add('family','text',array('required' => true,'label'=>'family'))
->add('tels','collection', array('required' => false,'prototype'=>true,'type'=> 'text','allow_add'=>true,'delete_empty'=>true,'label'=>'Tel'))
->add('username','text',array('required' => true,'label'=>'username'))
->add('password','password',array('required' => true,'label'=>'password'));
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'ITW\UserBundle\Entity\User'
));
}
/**
* @return string
*/
public function getName()
{
return 'itw_userbundle_user';
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.