2015-07-13 5 views
5

In CakePHP 3 angemeldet ist, fand ich zwei Möglichkeiten zu finden, wenn ein Benutzer angemeldet istCakePHP 3: Wie richtig überprüfen, ob ein Benutzer in

erste Lösung

if(!is_null($this->Auth->user('id'))){ 
     // Logged in 
} 

zweite. Lösung

if (!is_null($this->request->session()->read('Auth.User.id'))) { 
    // Logged in 
} 

ich denke, die erste ist besser, weil es kurz und prägnant ist.

Gibt es eine bessere Möglichkeit zu überprüfen, ob ein Benutzer angemeldet ist?

Ich bin nicht auf der Suche nach Geschwindigkeit unbedingt. Ich möchte eine saubere und expressive Art, es zu schreiben.

Antwort

11

Ich denke, der beste Weg, gerade ist:

if ($this->Auth->user()) {...} 
+0

Nice one. Danke – richerlariviere

+0

Ich versuchte es mit '$ this-> Auth-> isAuthorized()' zuerst, aber das funktionierte nur für die Homepage. Mit 'user()' funktioniert es. Seltsam. – Karl

+1

Aber das gibt 'Fatal error: Uncaught Error: Aufruf an eine Member-Funktion user() auf boolean'. Ich verwende diesen Code in 'AppController' –

1

Sie können diese mit session() Helfer zu tun.

$loggeduser = $this->request->session()->read('Auth.User'); 
if(!$loggeduser) { 
    $userID = $loggeduser['id']; 
    $firstName = $loggeduser['first_name']; 
}