1

そのため、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)

誰でも私を助けることができますか?

4

1 に答える 1