Answers:
您应该改用PHP Exceptions。我确实发现奇怪的是,Joomla在使用JError
3.3.6内核中仍未使用时会抛出已弃用的消息。
无论如何,以下将是数据库查询异常的示例
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('username')))
->from($db->quoteName('#__user'))
->where($db->quoteName('username') . ' = ' . $db->quote('Lodder'));
$db->setQuery($query);
try
{
// Try to get an object based on the results from the database
$results = $db->loadObjectList();
print_r($results);
}
catch (Exception $e)
{
// Start crying cause it didn't work
echo $e->getMessage();
}
这将引发错误,表明该表不存在,因为我使用#__user
而不是#__users
。
在您的情况下,我将尝试以下操作:
try
{
$user->save();
// redirect or do something magical
}
catch (Exception $e)
{
echo $e->getMessage();
}
$e->getMessage()
当然会得到错误,因此在catch中,您可以选择要处理的错误,例如将其记录或仅显示它。