Как использовать JFactory :: getDBO () публично? - PullRequest
1 голос
/ 06 июля 2011

Я создал новый php файл в компоненте.Я хочу получить соединение с базой данных Joomla , но соединение неизвестно.Сообщение об ошибке следующее:

Fatal error: Class 'JFactory' not found in D:\www\Joomla1.5\components\com_hello\views\hello\tmpl\index.php on line 13

Как использовать JFactory::getDBO() в общественных местах?

Ответы [ 2 ]

0 голосов
/ 28 июня 2012

Привет, в моем случае $result === null не сработало, но! $ Result - сработало хорошо

$db = JFactory::getDBO();
$db->setQuery('INSERT INTO #__table (col1, col2) VALUES (val1, val2)');
$result = $db->query();
if (!$result) {
  JError::raiseWarning(100, $db->getErrorMsg());
}
0 голосов
/ 06 июля 2011

Почему вы пытаетесь получить объект базы данных в вашем tmpl? Объекты БД должны использоваться только в вашем контроллере или модели, но не в вашем представлении или в tmpl. Tmpl должен содержать очень мало логического кода и в основном HTML.

Идея состоит в том, чтобы получить необходимую информацию, вызвав функцию в вашей модели. Затем вы передаете эти данные по ссылке на ваш tmpl, где вы их выводите.

[EDIT]

$db = JFactory::getDBO();
$db->setQuery('INSERT INTO #__table (col1, col2) VALUES (val1, val2)');
$result = $db->query();
if ($result === null) {
  JError::raiseWarning(100, $db->getErrorMsg());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...