Program Tip

Twig 템플릿에서 양식 필드에 오류가 있는지 간단한 확인

programtip 2020. 12. 13. 10:27
반응형

Twig 템플릿에서 양식 필드에 오류가 있는지 간단한 확인


Twig 템플릿에서 필드에 다음과 같은 오류가 있는지 확인합니다.

{% if form.points.get('errors') is not empty %}

다음과 같은 방법이 있습니까?

{% if form.points.hasErrors() %}

더 간단하게? 큰 차이는 아니지만 더 쉽게 할 수 없다면 왜 안돼.


그 방법은 존재하지 않습니다. 나는 일반적으로한다 {% if form.points.vars.errors|length %}.


내가 찾은 더 좋은 방법은 이런 종류의 코드를 사용하는 것입니다.

{% if not form.vars.valid %}
<div class="alert alert-error">
    {{ form_errors(form) }}
</div>
{% endif %}

필드 렌더링을 재정의 할 때 오류를 확인할 수도 있습니다.

{% block field_row %}
{% spaceless %}    
    <div class="control-group {% if errors %}error{% endif %}">
      {{ form_label(form) }}
      <div class="controls">
        {{ form_widget(form) }}        
        {{ form_errors(form) }}        
      </div>
    </div>    
{% endspaceless %}
{% endblock field_row %}

더 깊은 양식 사용자 정의를 위해 다음을 수행합니다.

<div class="form-group {% if form.MYFORMINPUT.vars.valid==false %}has-error{% endif %}">
//some twisted divs
{{form_label(form.MYFORMINPUT)}}
{{form_widget(form.MYFORMINPUT)}}
</div>

SF2.5


빈 배열이 거짓으로 확인되기 때문에 기존 검사를 다음으로 단축 할 수 있습니다.

{% if form.WIDGET_NAME.get('errors') %}

이것이 내가 사용하는 것입니다.

 <div class="form-group {{ form.brand.vars.errors|length > '' ? 'has-error' }}">

올바른 코드는 (Symfony 3.4의 경우) :

{% if form.vars.errors|length %}

나는 이것을 처리하기 위해 나뭇 가지 확장을 만들었습니다 : 내 확장

public function hasError($string)
{
    if(strlen($string) > 4)
        return true;
    return false;
}

나는 나뭇 가지에 이렇게 사용한다

{{ has_error(form_errors(form.username)) ? form_errors(form.username) : '' }}

비슷한 문제가 있었지만 form.points나뭇 가지 템플릿에 존재하지 않습니다.

컨트롤러에서 오류 수를 얻은 다음 템플릿에 변수로 전달해야했습니다. $form->getErrors()그래도 컨트롤러에서 예상대로 작동하지 않습니다. 양식 오류를 올바르게 가져 오는 함수에 대해서는 이 SO 질문참조하십시오 .

참고 URL : https://stackoverflow.com/questions/8914649/simple-check-if-form-field-has-errors-in-twig-template

반응형

'Program Tip' 카테고리의 다른 글

교리 2 ArrayCollection 필터 방법  (0) 2020.12.13
두 개의 HTML 표 셀 병합  (0) 2020.12.13
해시의 값으로 ERB 템플릿 렌더링  (0) 2020.12.13
속성 별 Android 정렬 배열 목록  (0) 2020.12.13
Rails : Font Awesome 사용  (0) 2020.12.13