Bagaimana tahu apakah pengguna adalah pengunjung atau anggota yang dicatat?

30

Bagaimana saya bisa menentukan secara program apakah pengguna saat ini anonim atau dikonfirmasi?

Axel Briche
sumber

Jawaban:

57

Demi kode yang lebih kuat dan deskriptif, Anda dapat menggunakan User::isAnonymous()metode praktis , misalnya

if (\Drupal::currentUser()->isAnonymous()) {
  // Anonymous user...
}
Clive
sumber
2
Kapan pun memungkinkan, gunakan metode seperti ini: program ke antarmuka bukan implementasinya. Menggunakan IDE dengan penyelesaian kode tidak ternilai untuk pekerjaan Drupal 8.
mpdonadio
3
Untuk siapa pun yang menemukan ini, perhatikan bahwa \ Drupal :: currentUser () -> isAuthenticated () adalah setara dengan D7 user_is_logged_in ()
Jaypan
Saya membuat modul khusus dan saya tidak bisa menjalankan fungsi ini. Apakah ada sesuatu tambahan yang perlu saya tambahkan di modul saya? Terima kasih sebelumnya.
SuperTony
6
  $current= \Drupal::currentUser();
  if (!$current->id()) {
    // is visitor
  }
  else {
    // is logged
  }
Axel Briche
sumber
-4

Anda dapat menggunakan kode ini ::

global $user;
if ($user->uid == 0) {
  //user is not logged in
}else{
  //user is logged in
}
mahdi alikhasi
sumber
2
Kode Drupal bekerja untuk Drupal 7, tetapi tidak dalam Drupal 8
Dev
1
Ya dan gunakan === untuk perbandingan yang ketat dan beri spasi sebelum dan sesudah yang lain untuk standar pengkodean: /
klidifia