php - 如何抑制 Joomla 的 JUser::_load:Unable to load user with id 错误消息?

标签 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 没有帮助。使用带有 @ 的 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
}

关于php - 如何抑制 Joomla 的 JUser::_load:Unable to load user with id 错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6977605/

相关文章:

php - 从标题的开头删除不需要的字符

joomla - 覆盖组件/com_users/models/forms/login.xml - Joomla 2.5?

php - PHP 静态方法可以合法地具有 protected 或私有(private)的可见性吗?

php - 警告:mysql_num_rows():提供的参数不是有效的MySQL结果资源

php - mysqli->error : Is it for the last query only, 还是来自查询组的最后一个错误?

git - 不同 repo 中的不同 Joomla .gitignore 文件

ssl - 混合 SSL 内容阻止使用 Nginx 安装/操作 Joomla

php - Joomla:onContentAfterSave 未触发

php - Joomla:从模型中调用辅助函数?

joomla - 禁用用户个人资料编辑?