我有一个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错误抑制也无济于事。
答案 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)
您可以在配置中关闭错误消息的显示: