3

我有一个在两个数据库上运行的 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 没有帮助。将 PHP 错误抑制与 @as 一起使用$user =@ JFactory::getUser($user_id)也无济于事。

4

2 回答 2

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
}
于 2011-08-08T14:20:16.527 回答
0

You can turn off the displaying of error message in the configuration:

  • On Tab Server, set Error Reporting to none.
  • (Maybe also:) On Tab System, set Debug System to No.
于 2011-08-08T10:04:22.803 回答