FormServiceProvider 및 ValidatorServiceProvider를 사용하는 Silex 프로젝트가 있습니다. 나는 form.factory 빌더 양식을 만든 필드를 추가하고 데이터 세트와 같은 객체를 사용했다 :Symfony가 객체 제약 조건의 유효성을 검사하지 않습니다.
if ($app['request']->getMethod() == 'POST') {
$form->bind($app['request']);
if ($form->isValid()) {
(...)
}
}
:
$form = $app['form.factory']->createBuilder('form', $object)
내가 다음 "정상적인 방법을"submition의 양식 유효성을 검사 할 나는 짧은 이름 필드 양식을 제출하면
static public function loadValidatorMetadata(ClassMetadata $metadata) {
$metadata->addPropertyConstraint('name', new Assert\MinLength(5, array('message' => 'Name too short')));
}
것은, isValid 여전히 true를 돌려 :
객체에서, 나는 loadValidatorMetadata 정적 방법을 추가했습니다. 나는이 같은 객체의 validate 메소드를 실행하는 경우 :
$errors = $app['validator']->validate($object)
는 제약 조건에 따라 오류를 반환하지만 형태 isValid이 오류를 찾을 수 없습니다. 심포니 폼 클래스를 살펴보면 비활성화 설정이 true 일 때 isValid가 자식 필드를 건너 뛰는 것을 발견했습니다. 이것은 내 양식의 경우이지만, 나는 그 이유를 모른다. 방금 Silex 서비스 공급자를 특별한 설정없이 정상적인 방법으로 등록했습니다. 양식을 만드는 방법에 대한 아이디어는 개체 제약 조건에 따라 유효성 검사를 실패합니까?