Proste sprawdzenie, czy pole formularza ma błędy w szablonie gałązki
W szablonie Twig sprawdzam czy pole ma taki błąd:
{% if form.points.get('errors') is not empty %}
Czy jest jakaś metoda typu:
{% if form.points.hasErrors() %}
Żeby zrobić to prościej? To nie jest duża różnica, ale jeśli nie mogę zrobić tego łatwiej, dlaczego nie. 8 answers
Ta metoda nie istnieje. Zazwyczaj robię {% if form.points.vars.errors|length %}
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-18 18:35:52
Lepszym sposobem, jaki znalazłem, jest użycie tego rodzaju kodu
{% if not form.vars.valid %}
<div class="alert alert-error">
{{ form_errors(form) }}
</div>
{% endif %}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-24 06:07:23
Można również sprawdzić, czy nie występują błędy podczas nadpisywania renderowania pól:
{% 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 %}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-16 08:42:39
Dla głębszego dostosowania formy robię:
<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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-02 22:20:42
Ponieważ pusta tablica zostanie rozwiązana na false, można skrócić istniejące sprawdzenie do
{% if form.WIDGET_NAME.get('errors') %}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-24 10:31:36
Tego używam:
<div class="form-group {{ form.brand.vars.errors|length > '' ? 'has-error' }}">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-12 10:12:22
Miałem podobny problem, ale form.points
nie istnieje w moich szablonach gałązek.
Musiałem pobrać liczbę błędów w kontrolerze, a następnie przekazać je do moich szablonów jako zmienną. $form->getErrors()
nie zachowuje się tak, jak można się spodziewać w kontrolerze. Zobacz to pytanie dla funkcji, która poprawnie otrzyma błędy formularza.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:46:34
I have create a twig extension to handle this: moje rozszerzenie
public function hasError($string)
{
if(strlen($string) > 4)
return true;
return false;
}
Używam go tak w gałązce
{{ has_error(form_errors(form.username)) ? form_errors(form.username) : '' }}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-04 14:00:23