konto usunięte
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ć.
Paweł Skroban Software Develoepr
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();
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
konto usunięte
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.
Jakub
Zalas
Software Engineer,
Symfony Core
Contributor
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
Podobne tematy
-
Symfony » [symfony][sfGuardPlugin] pobranie informacji zalogowanego... -
-
Symfony » tablica w plikach walidacji yml -
-
Symfony » dostęp do pól formularza, save() -
-
Symfony » liczniki treści użytkownika -
-
Symfony » form, save -
-
Symfony » Obsługa sesji w plikach bezpośrednio nie związanych z... -
-
Symfony » Symfony2 - problem z sesją w klasie form -
-
Symfony » [sf 1.4] Problem z zapisywaniem miniaturki zdjecia po... -
-
Symfony » [Sf 1.4] Wyświetlanie i dodawanie danych tylko... -
Następna dyskusja: