そのため、Joomla でバックエンドからいくつかのカスタム ユーザー グループを作成しました。登録ユーザーをこれらのカスタム グループに配置しました。グループはこんな感じです。
パブリック
|— ユーザー
|—|— 監査人
|—|— Custom_group1
|—|—|— Custom_group2
|—|—|—|— Custom_group3
|—|—|—|—|— 管理者
|—|—|—|—| —|— スーパー ユーザー
|—|— Custom_group4
したがって、カスタム グループ 3 と 4 の ID がそれぞれ 2 と 11 であるuser_b
グループCustom_group4
と の下Custom_group3
にあるとします (たとえば)、MySql データベースは次のようになります。
表: #__users
id name username email password
523 User A user_a user_a@mysite.com blablabla...
524 User B user_b user_b@mysite.com blablabla...
表: #__user_usergroup_map
user_id(Foreign Key to #__users.id) group_id(Foreign Key to #__usergroups.id)
523 8
524 2
524 11
ユーザー ID 524 に 2 つのグループが割り当てられていることがわかります。これで、ユーザー (ユーザー ID-524) のグループ ID を取得するための PHP コードが作成されました。
$user = JFactory::getUser();
$userId = $user->id;
$db = JFactory::getDbo();
$recursive = False;
// Build the database query to get the rules for the asset.
$query = $db->getQuery(true);
$query->select('ug.group_id');
$query->from('#__user_usergroup_map AS ug');
$query->leftJoin('#__users AS a ON a.id = ug.user_id');
$query->where('a.id = '.(int) $userId);
// Execute the query and load the rules from the result.
$db->setQuery($query);
$result = $db->loadResult();
print_r((array)$result);
そのうち、出力を取得します-
Array([0] => 2)
でもそうであってほしいArray([0] => 2, [1]=> 11)
誰でも私を助けることができますか?