如何抑制Joomla的JUser :: _ load:无法加载带有id错误信息的用户?

时间:2011-08-08 03:58:37

标签: php joomla joomla1.6

我有一个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的新手,所以管理员面板中有一些选项可以禁止这些消息吗?

更新:设置display_errors => off,html_errors => off,display_startup_errors => off noes not help。使用@作为$user =@ JFactory::getUser($user_id)的PHP错误抑制也无济于事。

2 个答案:

答案 0 :(得分:9)

为什么不简单地预先检查用户是否存在,然后运行代码:

$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
}

答案 1 :(得分:0)

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

  • 在标签服务器上,将错误报告设置为无。
  • (也许还有:)在Tab System上,将调试系统设置为No。