2014-12-01 7 views
1

내 프로젝트는 템플릿 엔진으로 Twig와 함께 Symfony를 사용합니다. 나는 몇 가지 유효성 검사를 수행하는 임베디드 양식이 있습니다. 나는이 같은 검증을 보여주고 싶은 :나뭇 가지 템플릿에서 유효성 검사 오류 확인

{% if not form.field.vars.valid %} 
    <span style='color: red;'>{{ form_label(form.field) }}</span> 
{% else %} 
    {{ form_label(form.field) }} 
{% endif %} 

사건은 오류가있는 경우에도 항상 유효 form.field.vars.valid 것입니다. 양식을 검증 한 이유는 오류가 양식에보고 된 곳을 디버깅하고 보았 기 때문입니다. 또한 양식을 제출 한 후 Symfony는 포커스가있을 때 필드 주변의 빨간색 테두리를 올바르게 렌더링합니다. 그러나 나는 사용자에게보다 명확한 시각적 참조를 제공하고자합니다. 또한 form.field.vars.errors | length> 0으로 시도했지만 오류가있는 경우에도 항상 길이가 0을 반환합니다.

error_bubblig에 대한 일부 참조를 보았고 양식 클래스 및 양식 클래스의 특정 필드에 대해 사용/사용 안함을 모두 시도했지만 form.field.vars.valid 또는 form.field에 어떤 영향도 미치지 않았습니다. .vars.errors | length.

내 프로젝트에서 Symfony 2.3.6을 사용했고이 문제를 해결하기 위해 2.3.22로 업그레이드 한 다음 2.6을 수행하고 문제가 지속됩니다.

도움이 되었습니까? 감사합니다

또한 누군가가 error_bubbling 설명서/예제 나를 가리킬 수 있습니까? 이 문제에 대한 검색 나는 그것에 대한 참조를 보았지만 좋은 설명을 찾을 수 없었습니다.

+0

더 명확하게하기 위해 답변을 수정했습니다. 이번에는 더 좋기를 바랍니다. –

답변

1

저는 이전 프로젝트에서 비슷한 것을 구현했습니다. formBooking.vars.valid을 사용했으며 1 또는 empty string을 반환합니다. 그리고 여기에 내가 error|length을 사용했던 방법을 보여 어떤 형태의 조각입니다 : 기본적으로

<div class="form-group col-lg-4"> 
     <div class="row"> 
      <div class="col-sm-12 {{ form.field.vars.errors|length > 0 ? 'has-error' }}"> 
       <i class="fa fa-calendar"></i>&nbsp;{{ form_label(form.field, 'Some Label') }} 
       {{ form_widget(form.field, {'attr': {'class': 'datepicker form-control', 'placeholder':'Some label'}}) }} 
      </div> 
      {{ form_errors(form.field, {'attr': {'class': 'error'}}) }} 
     </div> 
    </div> 

가, 내가 사업부와 위젯을 포장 한 현장 오류가있는 경우 CSS를 I 스타일로 다음 has-error 클래스를 추가하고이를 내가 원하는 방식으로. form_error을 원하는 위치에 놓을 수 있으며 form_widget 아래에 배치하기로했습니다. 희망이 도움이됩니다.

+0

예 ... 그건 제가 원하는 것과 비슷합니다. 그러나 제 경우에는 폼에 오류가 있어도 form.field.vars.errors | length가 0과 같습니다. 그래서 그것은 이것을 깨뜨린다. 왜 그런가? –

+1

그것은 임베디드 형태입니까? 나는 동일한 문제를 가지고 있지만 임베디드 형태이기 때문에. –

+0

예 ... 그렇다면 버그가 있습니까? 어떤 해결 방법? –

관련 문제