Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Problem z wypisywaniem csrf_token
Forum PHP.pl > Forum > PHP > Frameworki
filip11
Witam,

renderuje pola formularza stworzonego z modelu pole po polu pętlą for no i o ile samo pole csrf jest renderowane ukryte o tyle nazwa pola nie jest ukryta i ją wyświetla, jak sobie z tym radzicie?

Używam symfony 1.4 z Doctrine

Dzięki za sugestie
mat-bi
Aż specjalnie zajrzalem do kodu mojej aplikacji w Symfony i widzę tylko, zę trzeba zrobić
  1. echo $form;


I nic więcej...
filip11
No tak, ale to nie spowoduje tego, że będę mógł wyświetlić formularz w tabeli chyba? A jak będę chciał wyświetlić go w liście? itp.?
mat-bi
Dziwne, użyłem zwykłego

echo $form['_csrf_token'];

i pomimo moich usilnych starań jest to pole ukryte...
arecki
Cytat(filip11 @ 3.03.2011, 17:54:02 ) *
Witam,
renderuje pola formularza stworzonego z modelu pole po polu pętlą for no i o ile samo pole csrf jest renderowane ukryte o tyle nazwa pola nie jest ukryta i ją wyświetla, jak sobie z tym radzicie?


Ja sobie radze tak smile.gif
  1. <?php
  2. echo $form->renderFormTag(url_for('@akcja'), array('method' => 'post')).$form->renderHiddenFields();
  3. foreach($form as $fieldName => $field)
  4. {
  5. if(!$field->isHidden())
  6. {
  7. if($field->hasError())
  8. {
  9. echo 'blad pola '.$fieldName.' : '.$field->getError().'</br>';
  10. }
  11. echo $field->renderLabel().$field;
  12. }
  13. }
  14.  
  15. // moja własna funkcja do zamykania tagu <FORM>
  16. echo $form->renderFormTagEnd();
  17. ?>


Można to sobie ładnie opakować w html'a, stworzyć partiala i ładować do większości formularzy smile.gif)
evertras
Najlepszą praktyką jest renderować formularz za pomocą
Kod
echo $form;

a stylowanie robić pod css odnosząc się do konkretnych id formularza.
Jednak czasem trafiają się formularze rozbudowane i lepiej byłoby renderować samemu poszczególne pola. W tym przypadku na samym początku najlepiej jest posłużyć się metodą
Kod
echo $form->renderHiddenFields()

która wygeneruje za nas ukryte pola. Jeżeli jednak z jakiejś przyczyny chcesz uniknąc tego sposobu to możesz skorzystać z
Kod
echo $form['_csrf_token']->render();

Jeżeli nie korzystasz z
Kod
$form->renderRow() lub $form->renderLabel()
to nie ma prawa ci wyświetlić labela.
destroyerr
Cytat
Najlepszą praktyką jest renderować formularz za pomocą

Jakieś argumenty albo linki na potwierdzenie możesz podać?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.