Michał Soczyński

Michał Soczyński nie, nie pracuje

Temat: [symfony][sfGuardPlugin] pobranie informacji zalogowanego...

Witam, nie wiem jak pobrać dane o zalogowanym użytkowniku, np. user_id.
echo $sf_user->getAttribute('user_id').'a';


zwraca '';

w templatce mogę pobrać przez:

$sf_user->getGuardUser()->getId()


ale jak pobrać w akcji, chcę do formularza pobrać informacje na temat użytkownika:

    $this->forward404Unless($sfguarduser = SfGuardUserProfilePeer::retrieveByPk($sf_user->getGuardUser()->getId()), sprintf('Object user does not exist (%s).', $sf_user->getGuardUser()->getId()));


Nie mam w akcji zdefiniowanej zmiennej sf_user, proszę o pomoc!

EDIT:

Panowie czemu przy wykonaniu w akcji takiego polecenia:

    $this->user_id = sfGuardSecurityUser::getGuardUser()->getId();


Dostaję:

500 | Internal Server Error | sfException
Call to undefined method articleActions::getAttribute.


:(

Po trzech godzinach doszedłem do jakże prostego wniosku, zamiast tworzyć nowy moduł wykonałem formularz w module sfGuardAuth, dodałem nową akcję i tam miałem bezpośredni dostęp przez:

$this->user_id = $this->getUser()->getGuardUser()->getId();
Michał Soczyński edytował(a) ten post dnia 22.08.11 o godzinie 18:54
Grzegorz Śliwiński

Grzegorz Śliwiński Programista python

Temat: [symfony][sfGuardPlugin] pobranie informacji zalogowanego...

Tak niestety jest, że dostęp do obiektu użytkownika w szablonach jest jako $sf_user, a w akcjach jako $this->getUser() :)

konto usunięte

Temat: [symfony][sfGuardPlugin] pobranie informacji zalogowanego...

Dodatkowo, żeby za każdym razem w akcji nie pisać
$this->getUser()->getGuardUser()->getId()
a w templatce
$sf_user->getGuardUser()->getId()
skorzystaj z klasy myUser, którą to masz w libie swojej aplikacji, czyli np apps/frontend/lib/myUser.class.php

Tam napisz metodę, np
 public function getId()
{
return $this->getGuardUser()->getId();
}


i póżniej będziesz mógł korzystać ze skróconej formy, np w akcji
$this->getUser()->getId()


Ta klasa służy właśnie do tego typu rzeczy - jak Ci potrzebna jest jakaś metoda związana z userem, to możesz ją tam wpierdzielić:) u mnie ta klasa często ma dużo zastosowań:D

Następna dyskusja:

[symfony[ sfGuardPlugin, lo...




Wyślij zaproszenie do