我正在创建一个涉及检查用户 ID 的扩展。基本上我通过这里JFactory::getUser();
的示例 2运行一个潜在的用户名。我的代码是
$user_id=&JFactory::getUser($name);
if($user_id->id==0) { //Line 79
$profile_link = $name;
} else {
$profile_link = '<a href="'.JRoute::_('index.php?option=com_comprofiler&task=userProfile&user='.$user_id->id).'">' . $name . '</a>';
}
echo $profile_link;
只是为了澄清,我刚刚选择了代码的相关部分。如您所见,如果用户名是有效用户,那么我将链接到他们的社区构建者个人资料。否则我只是回显名称(这是通过名称列表的 foreach 循环运行的)。
我遇到了 2 个问题——这似乎是意料之外的。
首先,如果名称不存在。Joomla 将其作为系统消息区域中的错误发布。
JUser: :_load: User xxxx does not exist
还有一个php错误(注意我在上面的代码中指出了第79行)
Notice: Trying to get property of non-object in MODULEROOT/tmpl/default.php on line 79
- 其次,如果用户已注销,则 Joomla 发现该名称是否有效
$user_id->id
为 0。尽管文档明确说明这应该运行regardless of the status of the current user
有人能看出这段代码有什么问题吗?或者知道JFactory::getUser()
自从为 Joomla 2.5 编写该文档以来,标准是否发生了变化?