2012-08-29 2 views
20

symfony 양식을 사용하여 복잡한 유효성 검사를 수행하고 있으며 컨트롤러에서 특정 필드에 오류를 할당 할 수 있어야합니다. 지금은 다음과 같이 작동하는 전역 오류가 있습니다.symfony2의 컨트롤러에서 필드 특정 오류 추가

$error = new formerror("There is an error with the form"); 
$form->addError($error); 

그러나이 오류로 인해 특정 필드에 바인딩되지 않고 전역 오류가 발생합니다.

내 컨트롤러에서 특정 필드에 오류를 발생시키는 방법이 있습니까?

답변

44

IRC (감사합니다 @ fkrauthan!)를 통한 도움 덕분에 답을 찾았습니다.

SF2의 모든 필드는 실제로 양식의 인스턴스입니다. 필드의 양식 객체에 액세스 한 다음 오류를 추가해야합니다. 감사하게도 심포니는 임베디드 폼/필드를 가져 오는 방법을 제공합니다.

Heres는 내 코드 :

$error = new FormError("There is an error with the field"); 
$form->get('field')->addError($error); 

어떤 사람들이 지적했듯이, 당신이 파일의 상단에있는 FormError 클래스를 포함해야합니다 use Symfony\Component\Form\FormError;

+0

니스! :) 당신은 당신의 대답을 받아 들일 수 있습니까? –

+0

스택 오버플로는 처음 2 일 동안 자신의 답변을 수락 할 수 없습니다. – MrGlass

+0

아 맞습니다. 나중에 수행하는 것을 잊지 마세요.) –