Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

Kamil Demurat Student, Uniwersytet
Warmińsko-Mazurski
w Olsztynie

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

Czy ktoś wie jak uzyskać dostęp do id zalogowanego użytkownika w pliku np AlbumForm?
20.12.2011, 20:47

Aleksander Wons Aplikacje webowe

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

W przypadku formularzy możesz spokojnie przekazać w kontruktorze albo później jako parametr wywołania metody.

Oczywiście jeśli o to Ci chodzi, bo pytanie tak sformułowałeś, że nie ma innej opcji tylko zgadywać.
20.12.2011, 21:19

Paweł Skroban Programista/Develope
r, fachowo.co

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

Jeśli chodzi o pobranie użytkownika w lib/form, możesz zrobić to w taki sposób:
$user = sfContext::getInstance()->getUser();
21.12.2011, 08:23

Kamil Demurat Student, Uniwersytet
Warmińsko-Mazurski
w Olsztynie

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

Potrzebuję id w pliku form, żeby np zamiast pobierania wszystkich rekordów dajmy na to z tabeli Album, pobrało mi tylko takie, które należą do zalogowanego użytkownika.

$user = sfContext::getInstance()->getUser();


Gdzieś wyczytałem o tym sposobie ale również wyczytałem, że nie jest on polecany ze względów bezpieczeństwa... To prawda?
===============================================
Problem rozwiązany.
W konstruktorze
$this->form = new ZdjecieForm(null, $id);

gdzie $id jest tablicą opcji:
$id = array('user' => $this->getUser()->getGuardUser()->getId());

a w metodzie, którą wywołuję dla opcji criteria jako parametr ustawiam:
$this->getOption('user')

PozdrawiamKamil Demurat edytował(a) ten post dnia 21.12.11 o godzinie 09:29
21.12.2011, 09:11

Aleksander Wons Aplikacje webowe

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

W 99/100 przypadków możesz spokojnie używać sfContext::getInstance(). Tym bardziej w formularzu. Chyba, że kontextu nie będzie to wywali się wyjątek, ale to sporadyczne przypadki.
21.12.2011, 09:20

Jakub Zalas Senior Software
Engineer, Goyello IT
Services

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

Kamil Demurat:

$user = sfContext::getInstance()->getUser();


Gdzieś wyczytałem o tym sposobie ale również wyczytałem, że nie jest on polecany ze względów bezpieczeństwa... To prawda?

Nie ma to nic wspolnego z bezpieczenstwem.

Problem z pobieraniem kontekstu przy pomocy getInstance() jest taki, ze wewnatrz swojej klasy wprowadzasz zaleznosc od obiektu, ktory nie jest z nia powiazany. Kontekst nie jest potrzebny Twojemu formularzowi i nie musi on nic o nim wiedziec.

Lepiej jest jawnie przekazac potrzebne informacje z zewnatrz (np w konstruktorze, tak jak zrobiles). Taki kod jest latwiej testowalny (w przeciwienstwie do sytuacji, kiedy uzywasz sfContext::getInstance()).

W symfony 1.x uzywanie sfContext::getInstance() uwazane jest za zla praktyke.

--
Kuba
http://symfonylab.plJakub Zalas edytował(a) ten post dnia 22.12.11 o godzinie 13:28
22.12.2011, 13:27



Wyślij zaproszenie do