2012-09-26 3 views
14

저는 Symfony 2 웹 프레임 워크를 처음 사용하며 매우 기본적인 유효성 검사 작업에 어려움을 겪고 있습니다. 게시물에 대한 링크를 작성하는 데 사용하는 slug 멤버가있는 엔티티 모델 Post이 있습니다. Post.orm.yml에서 unique: true을 정의했으며이 제약 조건을 유효성 검사기로 포함하고자합니다.YML 유효성 검사 파일이 무시됩니다.

내가 파일 validation.yml 만든

:

# src/OwnBundles/BlogpostBundle/Resources/config/validation.yml 

OwnBundles\BlogpostBundle\Entity\Post: 
    properties: 
     slug: 
      - NotBlank: ~ 
    constraints: 
     - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: slug 

내 컨트롤러의 생성 기능은 매우 간단하다 : 기본적인 pageflow 잘 작동

public function addAction(Request $request) 
{ 
    $post = new Post(); 
    $form = $this->createForm(new PostType(), $post); 

    if($request->getMethod() == 'POST') 
    { 
     $form->bind($request); 
     if($form->isValid()) 
     { 
      $em = $this->getDoctrine()->getManager(); 
      $em->persist($post); 
      $em->flush(); 
      return $this->redirect(
       $this->generateUrl('own_bundles_blogpost_homepage') 
      ); 
     } 
    } 
    return $this->render(
     'OwnBundlesBlogpostBundle:Default:add.html.twig', 
     array(
      'title' => 'Add new blogpost', 
      'form' => $form->createView(), 
     ) 
    ); 
} 

, 내가 글을 추가하고 그들을 볼 수 있지만, 내 유효성을 테스트하기 위해 게시물 제목을 복제하면 예외가 throw됩니다 (SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'duplicate-slug' for key 'UNIQ_FAB8C3B3989D9B62'). 지금 당분간 문서를 스캔했지만 왜 $form->isValid()true을 반환하는지 알 수 없었습니다.

답변

33

app/config/config.yml에서 유효성 검사를 사용하셨습니까? app/cache 디렉토리를 지우 잊지 마세요 다음

... 

framework: 
    ... 
    validation: { enabled: true, enable_annotations: true } 
    ... 

... 

그리고 :

... 

framework: 
    ... 
    validation: { enabled: true } 
    ... 

... 

당신이 너무 주석 검증을 정의하려는 경우, 당신은 모두가 검증 및 주석 검증을 할 수 있습니다.

+1

내 config.yml은 다음과 같이 말합니다 :'framework : validation : {enable_annotations : true}'; 나는 이것이 유효성 검증을 가능하게한다고 가정했는데, 나는 틀렸어 ... 빠른 도움을 주셔서 감사합니다. 왜 이걸 찾을 수 없었는지 모르겠습니다. – nijansen

+0

주석을 사용하려면 두 매개 변수를 모두 사용해야합니다. 나는 내 대답을 편집했다. – AlterPHP

+0

고마워, 내가 그에 따라 내 config를 업데이트했습니다. 이제 그것은 매력처럼 작동합니다. – nijansen

관련 문제