web-dev-qa-db-ja.com

ロール名からロールIDを見つけるにはどうすればよいですか?

ログイン時に、ユーザーのサードパーティのデータソース(dbのテーブル)を確認し、見つかった場合はそのユーザーにロールを追加します。

役割を取り除くのではなく、役割名から取得したいのです。

17
chim

これは ser_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');

1つのライナーは次のようになります。

$rid = array_search('administrator', user_roles());
20
Lauri

ロールのマシン名がわかっているので、 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;
32
chim