在枝杈模板我檢查,如果一個字段有這樣的錯誤:簡單的檢查,如果表單字段在枝杈模板錯誤
{% if form.points.get('errors') is not empty %}
有沒有像任何方法:
{% if form.points.hasErrors() %}
做簡單?這不是一個很大的區別,但如果我不能做到這一點,爲什麼不呢。
在枝杈模板我檢查,如果一個字段有這樣的錯誤:簡單的檢查,如果表單字段在枝杈模板錯誤
{% if form.points.get('errors') is not empty %}
有沒有像任何方法:
{% if form.points.hasErrors() %}
做簡單?這不是一個很大的區別,但如果我不能做到這一點,爲什麼不呢。
該方法不存在。我通常做{% if form.points.vars.errors|length %}
。
我有類似的問題,但我的樹枝模板中不存在form.points
。
我必須得到控制器中的錯誤數量,然後將其作爲變量傳遞到我的模板中。 $form->getErrors()
雖然不像您在控制器中預期的那樣運行。請參閱this SO question瞭解正確獲取表單錯誤的函數。
您需要用您的字段名稱替換「分數」 – Emilie 2012-07-05 20:34:26
您還可以檢查覆蓋場渲染時的錯誤:
{% 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 %}
更好的方法,我發現,是由於空數組解析爲false使用這種代碼
{% if not form.vars.valid %}
<div class="alert alert-error">
{{ form_errors(form) }}
</div>
{% endif %}
,你可以縮短你現有的支票到
{% if form.WIDGET_NAME.get('errors') %}
我已經創建了一個樹枝擴展處理這個問題: 我的分機
public function hasError($string)
{
if(strlen($string) > 4)
return true;
return false;
}
我這樣使用它在樹枝
{{ has_error(form_errors(form.username)) ? form_errors(form.username) : '' }}
對於較深的表單自定義我做的:
<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
這是我使用的:
<div class="form-group {{ form.brand.vars.errors|length > '' ? 'has-error' }}">
許多答案已被添加,其中一些答案取決於'error_bubbling'設置。我已經在symfony食譜中增加了一個PR來改進文檔。隨意在這裏投票:https://github.com/symfony/symfony-docs/issues/6145 – webDEVILopers 2016-01-14 10:39:26