Вместо этого вы должны использовать исключения PHP. Я нахожу странным, что 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()
Конечно, вы получаете ошибку, так что внутри команды вы можете выбрать, что вы хотите с ней сделать, например, зарегистрировать ее или просто отобразить.