Woher wissen Sie, ob der Benutzer ein Besucher oder ein angemeldetes Mitglied ist?

30

Wie kann ich programmgesteuert feststellen, ob der aktuelle Benutzer anonym oder authentifiziert ist?

Axel Briche
quelle

Antworten:

57

Um einen stabileren und aussagekräftigeren Code zu erhalten, können Sie die praktische User::isAnonymous()Methode verwenden, z

if (\Drupal::currentUser()->isAnonymous()) {
  // Anonymous user...
}
Clive
quelle
2
Verwenden Sie nach Möglichkeit folgende Methoden: Programmieren Sie die Schnittstelle, nicht die Implementierung. Die Verwendung einer IDE mit Code-Vervollständigung ist für die Arbeit mit Drupal 8 von unschätzbarem Wert.
mpdonadio
3
Beachten Sie, dass \ Drupal :: currentUser () -> isAuthenticated () das Äquivalent von D7 user_is_logged_in ()
Jaypan,
Ich habe ein benutzerdefiniertes Modul erstellt und diese Funktion funktioniert nicht. Muss ich meinem Modul noch etwas hinzufügen? Danke im Voraus.
SuperTony
6
  $current= \Drupal::currentUser();
  if (!$current->id()) {
    // is visitor
  }
  else {
    // is logged
  }
Axel Briche
quelle
-4

Du kannst diesen Code benutzen:

global $user;
if ($user->uid == 0) {
  //user is not logged in
}else{
  //user is logged in
}
Mahdi Alikhasi
quelle
2
Drupal-Code funktioniert für Drupal 7, aber nicht für Drupal 8
Dev.
1
Yeah und verwende === für einen strengen Vergleich und setze Leerzeichen vor und nach deinem else für Codierungsstandards: /
klidifia