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?

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...
}

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
  }

-4

Możesz użyć tego kodu:

global $user;
if ($user->uid == 0) {
  //user is not logged in
}else{
  //user is logged in
}

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.