จะรับบทบาทผู้ใช้ที่ล็อกอินใน Drupal 8 ได้อย่างไร?
เช่นใน D7 เรามี $GLOBALS['user']->roles;
จะรับบทบาทผู้ใช้ที่ล็อกอินใน Drupal 8 ได้อย่างไร?
เช่นใน D7 เรามี $GLOBALS['user']->roles;
คำตอบ:
สิ่งที่ต้องการ:
$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');
เพื่อรับบทบาทผู้ใช้ปัจจุบันใน drupal 8 -
$role = \Drupal::currentUser()->getRoles();
foreach ($role as $value) {
$role = $value;
}
$container
ไหม?