如何抑制 Joomla 的 JUser::_load:无法加载用户并显示 id 错误消息?



我有一个Joomla 1.6安装,它在两个数据库上运行:Joomla的数据库和特定于域的数据库,它们都在同一个MySQL服务器上。某些实体在特定于域的数据库中保留其所有权链接,即存储创建它的Joomla用户的user_id。部分链接不一致,指向不存在的Joomla用户,从域模型的角度来看是正常的。问题是,当我试图获取用户名时显示的是

JUser::_load:Unable to load user with id 1

既然有这样的链接是可以的,我需要抑制这个消息。检索用户名的确切代码如下:

$user_id = $ticket->getUserId();
$user =& JFactory::getUser($user_id);

将此代码封装到ob_start() ... ob_end_clean()中没有帮助。当然,我可以通过入侵Joomla的内部来做到这一点,但有没有更简洁的解决方案?我是新来的Joomla,所以也许有一些选项在管理面板来抑制这些消息?

UPDATE:设置display_errors=>off, html_errors=>off, display_startup_errors=>off没有帮助。使用PHP错误抑制@作为$user =@ JFactory::getUser($user_id)也没有帮助。

为什么不直接预先检查用户是否存在,然后再运行代码呢?

$table   = JUser::getTable();
$user_id = intval( $ticket->getUserId() );
if($table->load( $user_id ))
{
         $user =& JFactory::getUser($user_id);
         // now you are sure user exists
} else {
         // user doesn't exists
}

您可以在配置中关闭错误信息的显示:

  • 在标签服务器上,将错误报告设置为none。
  • (可能也是:)在选项卡系统上,将调试系统设置为No.

相关内容

  • 没有找到相关文章

最新更新