2014-10-29 1 views
0

에서 항상 유효합니다양식 I이 유효성 검사 양식을 가지고 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이 제대로로드되고 있습니다 (잘못된 필드 이름을 사용하면 심포니에서 예외가 발생합니다)

어디에서 문제가 발생합니까?


심포니 버전 나는 또한 2.5.5
나는 또한 필드 name에 대한 getters 제약 목표로 노력하고 같은 결과를 얻었다과 노력 2.5.6 &입니다.


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'; 
    } 
} 
+0

[Symfony2 doc] (http://symfony.com/doc/current/book/validation.html#configuration)에 부합합니까? 'app/config/config.yml' 프레임 워크 섹션에서'validation : {enable_annotations : true}'? –

+0

@AlexandreL. 아니요. '주석'을 사용하지 않으므로'validation.yml'을 사용하고 있습니다. 어쨌든'annotations'로 테스트 한 결과도 실패합니다. 제 질문의 마지막 3 행을 확인하십시오 – RYN

+0

@Chausser : 2.5.6 버전 – RYN

답변

0

그냥 명확한 설명, 구성 validation 당신이 당신의 config.yml 파일에서 섹션 form을 제거하지 않은 경우 enabled by default입니다.

framework: 
    form: ~ 
+0

@Chausser의 도움으로 문제가 해결되었습니다. 채팅 링크는 댓글의 끝에 있습니다. 오류 테마의 공백 제어 변경으로 해결되었습니다 !!! (왜?!) – RYN