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?

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

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
  }

-4

Du kannst diesen Code benutzen:

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.