Как подавить JUser :: _ загрузки Joomla: не удается загрузить пользователя с сообщением об ошибке id? - PullRequest
3 голосов
/ 08 августа 2011

У меня есть установка Joomla 1.6, которая работает с двумя базами данных: база данных joomla и база данных, относящаяся к домену, обе на одном и том же сервере MySQL.Некоторые объекты в доменной базе данных сохраняют свои ссылки на владельцев, то есть хранят user_id пользователя Joomla, который его создал.Некоторые ссылки являются непоследовательными и указывают на несуществующего пользователя 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 с @ as $user =@ JFactory::getUser($user_id) тоже не помогает.

Ответы [ 2 ]

9 голосов
/ 08 августа 2011

Почему бы вам не сделать предварительную проверку, если пользователь существует, а затем запустить ваш код:

$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
}
0 голосов
/ 08 августа 2011

Вы можете отключить отображение сообщения об ошибке в конфигурации:

  • На сервере вкладок установите для Сообщения об ошибках значение none.
  • (Возможно также:) На вкладке Система установите Отладочная система на №
...