![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Witam,
Mam pewien problem napisałem sobie logowanie tworzyłem nowy kontroler i akcja dzieje sie w auth/login czyli w widoku login.phtml moge sobie wyswietlic dane Ale potrzebuje te dane wyswietlic jeszcze w głównym kontrolerze IndexController wiec musze jakość dziedziczyć dane jak mogę tego dokonać? Próbowałem na wiele sposobów ale jakoś mi to nie wychodzi mam
no i
i właśnie jakoś w IndexController muszę mieć zasięg do danych z AuthController Wiem że to banał. No ale jakoś nie mam pomysłu będę wdzięczny za wszystkie odpowiedzi -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Użyj Zend_Registry::set('nazwa_parametru', $wartosc_parametru), żeby zapisać dane i Zend_Registry::get('nazwa_parametru'), żeby odczytać. Wszystko dzieje się w pliku kontrolera, a nie w pliku widoku.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
mortus znowu ty super
![]() ![]() OK wiec tak, potrzebuje wyświetlić w widoku informacje no ale ok. chce to użyć w taki sposób AuthController
no i w IndexController
ale nie wiem czy tak można czy jest to dobre rozwiązanie Ten post edytował kielich 24.02.2010, 21:10:31 -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Załóżmy, że w bazie danych mamy tabelę users, a w niej pola: id, username, password. Plik kontrolera autoryzacji wygląda tak:
W Bootstraperze tworzymy nową metodę _init: Teraz w IndexController.php mamy dostęp do nazwy użytkownika poprzez Zend_Registry::get('username'). Oczywiście w metodzie _initIdentity() w Bootstraperze możemy zapisać w rejestrze również inne dane pochodzące z tabeli users. Ten post edytował mortus 24.02.2010, 21:52:22 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Mój AuthController wyglada tak
no i po dodaniu do Bootstrapa dostaje taki błąd Kod Notice: Trying to get property of non-object in C:\wamp\www\zf-tutorial\application\Bootstrap.php on line 31
Message: No entry is registered for key 'auth' Ten post edytował kielich 24.02.2010, 22:38:08 -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Zamień linię 64
na
i poinformuj o wynikach. EDIT: Przyjrzę się bliżej rano, bo dzisiaj już nie myślę. Ten post edytował mortus 24.02.2010, 22:48:56 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
0 rezultatów nawet jak linijkę 64 usunę .
![]() -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Zatem sprawdziłem Twój sposób i okazuje się, że w AuthController.php nie działa
Na razie nie wiem, dlaczego tak jest, ale zaproponuję pewne rozwiązanie. W Bootstrap.php zrób nową metodę _init, jak poniżej. Teraz wszystko powinno działać. Pozdrawiam |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
zrobiłem tak jak pisałeś no i kiedy w index.phtml daje
dostaje Kod Fatal error: Call to a member function hasIdentity() on a non-object in .... Ten post edytował kielich 25.02.2010, 14:20:50 -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
IndexController.php
index.phtml Z założenia wzorca MVC wszystkie operacje powinny być wykonywane w kontrolerze, natomiast plik widoku służy tylko do wyświetlenia odpowiednich danych w odpowiedni sposób. Ten post edytował mortus 25.02.2010, 14:33:38 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
dalej nie działa cały czas dostaje
Kod Message: No entry is registered for key 'auth'
Ten post edytował kielich 25.02.2010, 14:44:59 -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jeszcze raz wszystkie pliki: Bootstrap.php, AuthController.php, IndexController.php i index.phtml. Znajdziemy rozwiązanie!
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Boostrap
IndexController
no i widok index to sobie wyswietlam -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście bez trzech kropek! Ten post edytował mortus 25.02.2010, 15:01:39 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
No mam mam to napisałem podstawową moją wersje bez twojego kodu no ale nadal nie dział
![]()
-------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Zmień funkcję:
na Banał. Chodziło o to, że instancję obiektu Zend_Auth zapisywaliśmy w rejestrze, tylko wtedy, gdy użytkownik był zalogowany. A co się dzieje, kiedy użytkownik nie jest zalogowany? |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Kurcze po raz kolejny mi pomogłeś ( tak szczerze )
![]() Mam jeszcze pytanie teoretyczne mianowicie czy możesz mi wytłumaczyć dokładnie co to jest i jak działa ta cześć kodu :
Tzn wiem jak działa ale tak po naszemu. A co dokładnie oznaczają funkcje chodzi mi o wyjaśnienie bardziej zaawansowane -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Zend_Registry to nic innego jak rejestr aplikacji opartej o Zend Framework. Można powiedzieć, że jest to specyficzny rodzaj pamięci, w której możemy zapisywać dane, i z której te dane możemy pobierać. Cechą Zend_Registry jest fakt, że każda aplikacja Zend Framework może posiadać tylko jeden taki rejestr (klasa Zend_Registry jest singletonem). Do zapisywania w pamięci służy metoda set('nazwa_klucza', $wartosc_klucza), a do pobierania służy metoda get('nazwa_klucza'). Zend_Registry przypomina nieco sesję, ale nie jest to dokładnie to samo. Dla przykładu:
oba polecenia zapiszą nam $wartosc_klucza z tym, że pierwsze zapisze wartość klucza w tablicy $_SESSION pod indeksem nazwa_klucza, a drugie zapisze wartość klucza w specjalnym kontenerze (rejestrze) również pod indeksem nazwa_klucza. W obu przypadkach dane możemy pobrać: i powtórnie wykorzystać. |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
OK czyli już np. do innej zmiennej nie mogę użyć Zend_Registry??
-------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Możesz. Zend_Registry jest "jak tablica", w której pod różnymi indeksami mogą znajdować się różne wartości. Możemy np. przechowywać w rejestrze kilka różnych informacji, jak niżej.
Informację te w żaden sposób nie wchodzą ze sobą w konflikt ani też nie są ze sobą powiązane, a łączy je tylko przynależność do jednego, konkretnego rejestru. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:47 |