2010-05-15 9 views
1

im symfony 폼 유효성 검사를 테스트하고 있습니다.symfony 유효성 검사 문제

문제는 매우 간단합니다.

내가 본문 영역에 무엇을 넣고 게시하든, 나는 계속 "필수"를 되찾고 있습니다.

나는 이유를 모른다.

방금 ​​하나의 유효성 검사 규칙이 있습니다. code

무엇이 잘못되었는지/내가 어떻게 디버깅 할 수 있습니다 : 여기

코드인가?

감사

UPDATE : 그것은 컨트롤러에 바인딩을 함께 할 수있는 뭔가가.

원인 : 유효성 검사를 삭제해도 양식이 여전히 유효하지 않으며 이번에는 템플릿으로 전달되지만 이번에는 '필수'없이 전달됩니다.

유효성 검사가 유효한지 여부와 관계없이 유효하지 않습니다.

embedForm()과 관련이 있습니다. 삽입 된 양식의 유효성을 검사 한 사람이 있습니까?

내가

<? 
foreach ($form->getErrorSchema() as $field => $error) { 
    printf("%s: %s\n", $field, $error->getMessage()); 
    echo "<br />"; 
} 
?> 

와 오류 메시지를 인쇄하고 내가 얻을 :

0: Unexpected extra form field named "body". 
thread: body [Required.] 
_csrf_token: Required. 
Body 

들이 스레드을 의미합니까 : 몸이 필요 또는 CSRF이 필요합니다?

감사합니다.

+0

나 자신을 확인하기에는 너무 게으르다. 그렇다면'textarea'의'name' 속성은 무엇입니까? 그것은'thread [body]'아니면'body'입니까? – Crozin

+0

해당 스레드 [본문]! –

+0

- 댓글 삭제 - 업데이트를 보았습니다. – Tom

답변

1

먼저, 양식을 울리는 시도 특정하지 않고, 예를 들면 :이 작동하는 경우

<?php echo $form; ?> 

는, 다음이야 코드를 에코하는 폼과 관련이 있습니다. 해당 페이지의 HTML 소스를 확인한 다음 기본 양식 코드 렌더링을 확인하고 위의 코드 출력과 비교하는 것이 좋습니다. 필드의 이름이 다른 경우에는 Radu가 제안하는 양식 이름 형식이 될 수 있습니다. 별도의 노트에

은, 사용하는 것을 잊지 마세요 :

<?php echo $form->renderHiddenFields(); ?> 

을뿐만 아니라 템플릿에서 CSRF 토큰 필드가 렌더링됩니다 있도록. 이렇게하면 "_csrf_token : 필수"양식 오류가 제거됩니다.

1

POST를 통해 어떤 매개 변수가 전송되었는지 확인 했습니까?

아마 도움이 될 것입니다 양식 설정 방법에 다음을 추가 : 모든

$this->widgetSchema->setNameFormat('thread[%s]');