2013-09-01 21 views
7

Korzystanie z PHP i laravel 4 Mam metodę w moim modelu użytkownika jak ten poniżej, aby sprawdzić Admin ...Powrót bieżącego użytkownika w laravel 4

public function isAdmin() 
{ 
    if(isset($this->user_role) && $this->user_role === 'admin'){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

ta nie działa, gdy zgłoszę tej funkcji w innych klasach lub modelach.

Aby uzyskać pożądany efekt, co musiałem zrobić to w ten sposób, zamiast ...

public function isAdmin() 
{ 
    if(isset(Auth::user()->user_role) && Auth::user()->user_role === 'admin'){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

Próbuję uzyskać dostęp do tego w moim Admin Controller tak poniżej ale zwraca pusty obiekt użytkownika zamiast prądu zalogowany użytkownik Obiekt ...

public function __construct(User $user) 
{ 
    $this->user = $user; 
} 

Moje pytanie brzmi: jak mogę uruchomić pierwszą wersję? Kiedy tworzę obiekt użytkownika w innej klasie, muszę jakoś upewnić się, że ma on dane dla bieżącego zalogowanego użytkownika, ale nie jestem pewien, jak to zrobić najlepiej ... Wiem, że to jest podstawowe, jestem tylko trochę zardzewiałe teraz mogli korzystać z pomocy, dzięki

Odpowiedz

14

ta zwraca repozytorium użytkowników - nie jest obecny zalogowany użytkownik

public function __construct(User $user) 

Aby uzyskać dostęp do prądu zalogowany użytkownik w dowolnym miejscu aplikacji - wystarczy zrobić

Auth::user() 

(na przykład Twój środkowy przykład)

Tak więc - w celu sprawdzenia, czy użytkownik jest użytkownikiem Administrator w dowolnym miejscu aplikacji - wystarczy zrobić

if (Auth::user()->isAdmin()) 
{ 
    // yes 
} 
else 
{ 
    // no 
} 
+1

laravel jest bardzo fajne, ale to wydaje się prawie nie robi zbyt wiele pracy, że trudno jest wiedzieć, co się dzieje. Chyba po prostu muszę nauczyć się struktury, której używam do robienia rzeczy od zera ... Zabawne, że korzystanie z frameworków byłoby dla mnie trudniejsze. – JasonDavis

+0

@jasondavis Trzymaj się tego, odwołaj się do dokumentów, po użyciu go przez rok lub tak, to jest niesamowite i nigdy nie wrócę. –

+0

@DustinGraham W ciągu 10 miesięcy od kiedy zrobiłem ten komentarz, również nie mogłem zobaczyć powrotu, jest po prostu niesamowity. MÓJ jedyny zarzut to żałuję, że nie było również lekkiej wersji dla małych mikro projektów. Laravel v3 miał kiedyś wersję z pojedynczym plikiem i byłoby super, gdyby było to możliwe z L4, ale wątpię, by to było teraz. – JasonDavis