Obecnie zalogowane role użytkownika


18

Jak zdobyć aktualnie zalogowane role użytkownika w Drupal 8?

Na przykład w D7 mamy $GLOBALS['user']->roles;

Odpowiedzi:


31

Coś jak:

$current_user = \Drupal::currentUser();
$roles = $current_user->getRoles();

zwróci tablicę taką jak:

Array
(
  [0] => authenticated
  [1] => administrator
  [2] => some_other_role
)

gdzie wartościami tablicowymi są identyfikatory ról (równoważne nazwie maszyny roli w Drupal 7). W kodzie OO użyj odpowiedniego mechanizmu, aby pobrać bieżącego użytkownika z kontenera, np

$current_user = $container->get('current_user');

Dobra odpowiedź, czy możesz dodać kod $container?
Uczeń

@Pupil, aby uzyskać dostęp do kontenera w kontekście OO, należy utworzyć klasę i użyć wstrzykiwania zależności, aby wywołać go, jak pokazano tutaj, na przykład drupal.org/docs/8/api/services-and-dependency-injection/…
wranvaud

0

Aby uzyskać bieżącą rolę użytkownika w Drupal 8 -

$role = \Drupal::currentUser()->getRoles();
foreach ($role as $value) {
   $role = $value;
}
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.