Jak się dowiedzieć, czy użytkownik jest gościem czy zalogowanym członkiem?

30

Jak mogę programowo ustalić, czy bieżący użytkownik jest anonimowy czy uwierzytelniony?

Axel Briche
źródło

Odpowiedzi:

57

W trosce o bardziej solidny i opisowy kod możesz skorzystać z przydatnej User::isAnonymous()metody, np

if (\Drupal::currentUser()->isAnonymous()) {
  // Anonymous user...
}
Clive
źródło
2
O ile to możliwe, używaj takich metod: program do interfejsu, a nie implementacja. Użycie IDE z uzupełnieniem kodu jest nieocenione w pracy Drupala 8.
mpdonadio
3
Dla każdego, kto się z tym spotka, zauważ, że \ Drupal :: currentUser () -> isAuthenticated () jest odpowiednikiem D7 user_is_logged_in ()
Jaypan 16.01.17
Utworzyłem niestandardowy moduł i nie mogę uruchomić tej funkcji. Czy muszę coś dodać w swoim module? Z góry dziękuję.
SuperTony
6
  $current= \Drupal::currentUser();
  if (!$current->id()) {
    // is visitor
  }
  else {
    // is logged
  }
Axel Briche
źródło
-4

Możesz użyć tego kodu:

global $user;
if ($user->uid == 0) {
  //user is not logged in
}else{
  //user is logged in
}
Mahdi Alikhasi
źródło
2
Kod Drupal działa w Drupal 7, ale nie w Drupal 8
Dev
1
Tak i użyj === do dokładnego porównania i umieść spację przed i po swoim innym dla standardów kodowania: /
klidifia