반응형
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 |