User id a metoda getId v modelu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- joker0cz
- Člen | 16
Zdravím, mám model, který má za úkol logovat situace (přihlášení, hledání ..) a ukládat data do db. Vyskytl se mě tu ale problém. U každé metody modelu log je user_id, které jsem tahal z DI containeru,
public function __construct(Connection $db,Request $request,User $user){
$this->db = $db;
$this->request = $request;
$this->user = $user;
}
Ovšem při volání
$this->user->getId();
se mi permanetně dostává int 1
i když je přihlášenej user s id 30
Nevíte někdo jak správně implementovat Nette\Security\User tak abych dostával správné id a vyhnul se předávání hodnot z presenteru?
- jiri.pudil
- Nette Blogger | 1032
Nette\Security\User::getId() zavolá getId() nad identitou, takže ti vrátí to ID, které jsi (typicky v autentikátoru) do identity zadal.
- Tabetha
- Člen | 140
nejako takto by to malo ísť tiež … hádam tam nemám žiadny preklep alebo nesúvislosť :)
class Log extends Object
{
/** @var Nette\Security\User */
private $user;
public function __construct(Connection $db,Request $request)
{
$this->db = $db;
$this->request = $request;
}
public funcion setUser(User $user)
{
$this->user = $user;
}
}
abstract class BasePresenter extends Presenter
{
/** @var Log */
protected $log;
public function startup()
{
parent::startup();
$this->log->setUser($this->getUser());
}
public function injectLog(Log $log)
{
$this->log = $log;
}
}
Editoval Tabetha (19. 1. 2013 19:29)