Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][symfony2] Wyświetlanie formularza
peter13135
post 6.09.2012, 13:18:31
Post #1





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Tak wygląda jeden z moich plików tpl (prawda, że uroczy ? ). On elegancko działa, ale chce go rozbudować.
  1. {%extends 'AdmFormBundle:layouts:base.html.twig'%}
  2.  
  3.  
  4. {% form_theme form _self %}
  5.  
  6. {% block field_row %}
  7. <div class="control-group ">
  8. <div>
  9. {{form_label(form, null, { 'attr': {'class': 'control-label'} } )}}
  10. </div>
  11. <div class="controls">
  12. {{form_widget(form)}}
  13. </div>
  14. <div class="error">
  15. {{form_errors(form)}}
  16. </div>
  17. </div>
  18. {% endblock %}
  19.  
  20. {% block body %}
  21.  
  22. <form class="form-horizontal" method="post" {{ form_enctype(form) }}>
  23. {{ form_errors(form) }}
  24.  
  25. {%for f in form %}
  26. {{ form_row(f) }}
  27. {%endfor%}
  28.  
  29. {{ form_rest(form) }}
  30. <div class="controls">
  31. <input type="submit" value="{{formDefinition.buttonText}}" class="btn {{buttonStyles[formDefinition.buttonStyle]}}" />
  32. </div>
  33. </form>
  34.  
  35. {%endblock%}




Chciałbym pod każdym inputem mieć możliwość wyświetlenia małego tekstu, opisującego po co to pole właściwie istnieje.

Czyli w skrócie chodzi mi o coś takiego :

  1. {% form_theme form _self %}
  2.  
  3. {% block field_row %}
  4. <div class="control-group ">
  5. <div>
  6. {{form_label(form, null, { 'attr': {'class': 'control-label'} } )}}
  7. </div>
  8. <div class="controls">
  9. {{form_widget(form)}}
  10. </div>
  11. <div class="smallText"> {{form_description(form)}} </div>
  12. <div class="error">
  13. {{form_errors(form)}}
  14. </div>
  15. </div>
  16. {% endblock %}


Ale jak wiadomo, nie istnieje taka metoda jak form_description, więc to tylko taki pseudokod.
W jaki sposób takie coś osiągnąć ? Czy jest możliwość dodawania jakichś swoich własnych wartości do takiego formularza ? A może da się w pliku tpl odczytać nazwę pola ?


--------------------
:)
Go to the top of the page
+Quote Post
m44
post 6.09.2012, 13:36:10
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 10
Dołączył: 16.11.2008

Ostrzeżenie: (0%)
-----


Możesz to zrobić na dwa sposoby. Pierwszy to napisania swojego własnego rozszerzenia do formularzy, tak żeby mógł z niego korzystać FormBuilder.
O tym jak to zrobić możesz poczytać tutaj:

http://toni.uebernickel.info/2011/11/25/ho...n-symfony2.html

Wtedy będziesz mógł korzystać z opcji "help" lub innej w w Twigu.

Inna możliwość, to odwoływanie się do tłumaczenia poprzez "trans" w ten sposób, że ścieżką do tłumaczenia będzie nazwa "nazwa_formularza.nazwa_pola".
Wtedy automatycznie będzie szukało dodatkowego opisu w plikach tłumaczeń. Możesz również obie metody połączyć.

Zwróć jednak uwagę, że w przykładzie autor wpisu używał Symfony 2.0. Od wersji 2.1 zmieniły się trochę formularze, wiele rzeczy zostało rozbite na interfejsy. Być może będziesz musiał trochę zmodyfikować kod.

Ten post edytował m44 6.09.2012, 13:40:47
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 14:58