使用PHP在Joomla中获取用户组ID

7
为了在Joomla 2.5.15中获取用户组ID,我按照这里的Joomla文档进行操作。
我的代码如下:
$user = JFactory::getUser();
echo "<p>Your group id is {$user->gid}.</p>";

但是这段代码却出现了错误:注意:未定义属性:JUser::$gid。输出中没有任何组ID。

嗨,Drupal?我在使用Joomla 2.5。 - user882670
在1.6+版本中,用户可以分配到多个用户组,而不仅仅是一个,因此旧的API获取单个ID的方法将无法使用。 - Elin
3个回答

14

试试使用这个:

$user   = JFactory::getUser();
$groups = $user->get('groups');

foreach ($groups as $group)
{
    echo '<p>Group = ' . $group . '</p>';
}

嗨,我也尝试过那个,但是我收到了“您的组已被弃用”的消息。 - user882670
@NunoNogueira,你的用户类型已被弃用,请查看你的表格。 - daniel__
1
@loops 是的,在数据库中,我的用户类型对于所有其他用户都显示为已弃用和空,但我想要获取的是group_id。 - user882670
嘿,我知道这很老了,但我怎样才能说“如果($groups ==“1”)则…”? - MailBlade
在foreach循环内,执行if ($group == 1)的@Mailblade。 - Lodder
谢谢@Lodder。我不确定是否使用引号。哈哈,感谢您回复这个古老的帖子! - MailBlade

1
jimport( 'joomla.access.access' );
$groups = JAccess::getGroupsByUser($user_id, false);
var_dump($groups);

1
不要仅仅发布代码块,添加一些解释或上下文。否则,您的帖子可能对未来的访问者没有任何用处。此外,您的代码格式很糟糕,我已经编辑了您的帖子并修复了格式。将来请更加小心。 - Xaver Kapeller

-1

来自文档

$user = JFactory::getUser(99); 
echo "<p>Your usertype is {$user->usertype} which has a group id of {$user->gid}.</p>";

自 Joomla 1.6 起,usertype 已被弃用。 - Lodder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接