บทบาทของผู้ใช้ที่ล็อกอินในปัจจุบัน


18

จะรับบทบาทผู้ใช้ที่ล็อกอินใน Drupal 8 ได้อย่างไร?

เช่นใน D7 เรามี $GLOBALS['user']->roles;

คำตอบ:


31

สิ่งที่ต้องการ:

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

จะคืนค่าอาร์เรย์เช่น:

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

โดยที่ค่าอาร์เรย์คือ ID บทบาท (เทียบเท่ากับชื่อเครื่องของบทบาทใน Drupal 7) ในรหัส OO ใช้กลไกที่เหมาะสมเพื่อให้ได้ผู้ใช้ปัจจุบันจากภาชนะเช่น

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

คำตอบที่ดีคุณช่วยเพิ่มรหัสได้$containerไหม?
นักเรียน

@ นักเรียนเพื่อเข้าถึงคอนเทนเนอร์ในบริบท OO คุณควรสร้างคลาสของคุณและใช้การฉีดพึ่งพาเพื่อเรียกมันดังที่แสดงไว้ที่นี่เช่นdrupal.org/docs/8/api/services-and-dependency-inject/ ......
wranvaud

0

เพื่อรับบทบาทผู้ใช้ปัจจุบันใน drupal 8 -

$role = \Drupal::currentUser()->getRoles();
foreach ($role as $value) {
   $role = $value;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.