เมื่อเข้าสู่ระบบฉันต้องการตรวจสอบแหล่งข้อมูลบุคคลที่สาม (ตารางในฐานข้อมูล) สำหรับผู้ใช้และหากพบว่าฉันต้องการเพิ่มบทบาทให้กับผู้ใช้นั้น
ฉันไม่ต้องการที่จะคาดเดาการกำจัดของบทบาทฉันต้องการที่จะได้รับจากชื่อบทบาท
เมื่อเข้าสู่ระบบฉันต้องการตรวจสอบแหล่งข้อมูลบุคคลที่สาม (ตารางในฐานข้อมูล) สำหรับผู้ใช้และหากพบว่าฉันต้องการเพิ่มบทบาทให้กับผู้ใช้นั้น
ฉันไม่ต้องการที่จะคาดเดาการกำจัดของบทบาทฉันต้องการที่จะได้รับจากชื่อบทบาท
คำตอบ:
ตรงไปตรงมามากกับuser_roles ()และarray_search () ด้านล่างเป็นฟังก์ชั่นที่จะคืนค่า ID บทบาทหากมีบทบาทที่ตรงกับชื่อและ FALSE
function get_role_by_name($name) {
$roles = user_roles();
return array_search($name, $roles);
}
// Sample usage
$rid = get_role_by_name('administrator');
หนึ่งซับจะเป็น:
$rid = array_search('administrator', user_roles());
user_role_load_by_name()
รู้ชื่อเครื่องของบทบาทมันก็เพียงพอที่จะใช้งาน
if ($role = user_role_load_by_name('Role Name')) {
// The role ID is in $role->rid.
}
หากบทบาทอาจไม่มีอยู่ ...
$role = user_role_load_by_name('Role Name');
$role_id = $role ? $role->rid : NULL;
วิธีที่ดีที่สุดในการระบุบทบาทและ id ของมันมาจาก SQL เรียกใช้แบบสอบถามนี้ในตัวแก้ไข SQL ของคุณ
select * from roles;
และคุณจะได้รับรายชื่อบทบาทรวมถึงรหัสและน้ำหนัก