我有一个 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/