Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]Zend_Form i brak formularza
Forum PHP.pl > Forum > PHP > Frameworki
PawelC
Witam, mam taki problem, stworzyłem sobie formularz:

  1. <?php
  2. class Form_LoginForm extends Zend_Form
  3. {
  4. public function __contruct($option = null)
  5. {
  6. parent::__contruct($option);
  7.  
  8. $this->setName('login');
  9. $username=new Zend_Form_Element_Text('username');
  10. $username->setLabel('Username:')
  11. ->isRequired();
  12.  
  13. $password=new Zend_Form_Element_Password('password');
  14. $password->setLabel('Password:')
  15. ->isRequired(TRUE);
  16.  
  17. $login=new Zend_Form_Element_Submit('login');
  18. $login->setLabel('Login');
  19.  
  20. $this->addElements(array($username,$password,$login));
  21. $this->setMethod('post');
  22. $this->setAction('/autoryzacja/login');
  23.  
  24. }
  25. }


W kontrolerze wywołuje go tak:

  1. $form = new Form_LoginForm();
  2. $this->view->form=$form;


W widoku mam echo $this->form;

Efekt jest taki, że nie widać formularza w ogóle, a w źródle widoku jest tylko:

  1. <form enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form">
  2. </dl></form>invalid
Walczę od paru minut i nie mam pojęcia co jest nie tak. To invalid to jest napis podczas podania złych danych w trakcie logowanie.

//Problem rozwiązany, temat do kasacji
seth-kk
nie ruszaj konstruktorow dopuki nie zamierzasz zmieniac ich dzialania

  1. parent::__construct($option);

(brakuje "s")
do dodawania elementow lepiej jest przyslonic init()
PawelC
Ok dzięki smile.gif A powiedz mi takie coś, teraz mam np kontroler admin do którego ma dostęp tylko zalogowany, to jak mam przy pomocy Zend_Auth sprawdzić czy ktoś jest zalogowany.

Wydaje mi się, że to jest ta linia:

  1. if(Zend_Auth::getInstance()->hasIdentity())
  2. {
  3. $this->_redirect('index/index');
  4. }


Oczywiście mogę się mylić.

seth-kk
nie mylisz sie
PawelC
Dziękuje bardzo za pomoc smile.gif A te sprawdzenie czy jest zalogowany wystarczy, że wrzucę do konstruktora lub jak napisałeś init(), niż wklepywać to do każdej akcji.

Został mi jeszcze miesiąc na opanowanie Zenda w stopniu umożliwiającym samodzielne pisanie aplikacji ;/

//Ok już sprawdziłem wystarczy wrzucić do init();
-=Peter=-
Cytat
[...]Walczę od paru minut i [...]

Nie rozumiem, jak można założyć temat na forum z prośbą o pomoc w problemie, który próbowałeś samodzielnie rozwiązać przez góra 10 minut. Rozumiem jakbyś siedział nad tym kilka godzin, dzień lub dwa i nie dawał rady, ale kilka(naście) minut? snitch.gif Wg mnie to jest brak szacunku dla innych użytkowników forum.

Tak na przyszłość: czytaj dokumentację ZF, bo tam jest odpowiedzi na 99% Twoich pytań. Jeśli jednak czytasz tą dokumentację, to czytaj ją ze zrozumieniem, bo samo czytanie dla samego czytania nic nie daje winksmiley.jpg

Pozdrawiam i nie bierz tych słów za bardzo do siebie.
PawelC
Pytałem dlatego, że 3 razy prześwietliłem kod i nie zauważyłem błędu, dopiero po wklejeniu na forum i ponownej analizie, zauważyłem błąd. Fakt trochę przegiełem, bo praktycznie te 10 minut mogłem odpocząć, i ponownie przeanalizować kod.

Sorki za zawracanie głowy i pozdrawiam
seth-kk
wlacz raportowanie bledow i zapoznaj sie z dobrymi nawykami w pisaniu kodu (jezyk nie ma wiekszego znaczenia) a interpretery/kompilatory bardzo ci w tym pomoga
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.