2017-01-28 9 views
0

나는이 같은 필드 심포니 2.8에서 양식을 가지고첫 번째 오류시 필드 유효성 검사를 중지하는 방법?

$builder->add('a', TextType::class, [ 
      'label' => '', 
      'constraints' => [ 
       new NotBlank(
        [ 
         'message' => 'foo' 
        ] 
       ), 
       new Regex(
        [ 
         'pattern' => '/^\d+$/', 
         'message' => 'bar' 
        ] 
       ), 
       new GreaterThan(
        [ 
         'value' => 0, 
         'message' => 'empty' 
        ] 
       ) 
      ] 
]); 

`

필드 값이 비어 때, 우리는 각각의 제약에서 오류 메시지가 있습니다. 실패한 첫 번째 제약 조건 이후에 정의 된 제약 조건 실행을 방지하는 방법은 무엇입니까?

답변

0

문제에 대한보다 직접적인 해결책이 있는지 모르겠으나 callback을 사용하여 필드의 유효성을 검사하고 처음 실패한 검사에서 오류 메시지를 추가하게 할 수 있습니다.

0

용액의 differents에게 오류 레벨 사용할 수 : (. 예를 'LV1', 'LV2') 서로 다른 레벨을 설정하면

http://symfony.com/doc/current/validation/severity.html

new NotBlank(
       [ 
        'message' => 'foo', 
        'payload' => 
         [ 
          'severity' => 'lv1'     
         ] 
       ] 
      ), 
... 

을 단순히 쇼를 만들 수 있습니다 무엇을 보여줄지 선택하는 실수에 대한 논리.

다른 방법은 오류를 찾고, 당신의 엔티티의 모든 단일 속성을 확인하는 것입니다

$errors = $this->get('validator')->validateProperty($entity, 'name of the property'); 
if (count($errors)) { 
    // Show only the first error 
} 

이 이것을 달성하는 다른 방법도 있지만, 당신이 우리에게 코드 로직에 대한 자세한 내용을 제공해야합니다.