symfony2 Form
및 Validator
구성 요소에서 클라이언트 측 폼 검증을 작성하는 것이 매우 유용하다고 생각합니다.Symfony2에서 클라이언트 측과 서버 측 검증을 결합하여 생성
이 작업을 수행하는 가장 좋은 방법은 유효성 검사 제약 조건을 양식보기에 전달하는 것입니다. 정보와 는 이런 일에 양식 필드를 렌더링하는 템플릿을 만들 수있을 것입니다 :
<div>
<label for="form_email">E-Mail</label>
<input
id="form_email" type="text" name="form[email]" value=""
data-validation-constraints='{"NotBlank":{},"MinLength":{"limit":6}}'
/>
</div>
자바 스크립트 부분은 다음 data-validation-constraints
속성이있는 모든 <input>
요소를 찾아 정확한 검증을 생성하는 것입니다 그들을 위해.
양식보기에 유효성 제한 조건을 전달하려면 양식 유형 확장을 만드는 것이 가장 좋은 방법이라고 생각했습니다. 그게 내 질문의 요점이다. 이것이 올바른 방법일까요? 그리고 이것은 어떻게 가능합니까? 순간
내 폼 타입의 확장은 다음과 같습니다use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\Form\FormBuilder;
class FieldTypeExtension extends \Symfony\Component\Form\AbstractTypeExtension{
public function getExtendedType(){
return 'field';
}
public function buildView(FormView $view, FormInterface $form)
{
// at this point i didn't find a way to get the
// validation constraints out of the $form
// the `getAllValidationConstraints` here is just an example
$view->set('validation_constraints', $form->getAllValidationConstraints());
}
}
어떻게 내가 FormInterface 개체에서 하나 개의 양식 필드에 적용된 모든 검증 제약을받을 수 있나요?
하지만 매우 다른 방법으로 폼 타입의 제약을 변환 새로운 심포니 2 번들입니다. 현재 엔티티의 주석에 정의 된 제약 조건에서만 작동합니다. 어디에서 왔는지에 관계없이 모든 제약 조건을 원합니다. 'isValid' 메서드가 사용하는 것과 같은 메커니즘을 사용하여 constaints를 찾고 싶습니다. – ausi