1

我正在使用 Joomla 2.5,我需要检索当前用户的“头像”字段。

这是我正在使用的代码:

$user = JFactory::getUser();
$id = $user->get('id');

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select('avatar')
 ->from('#__discuss_users')
 ->where('id = $id');

$db->setQuery($query);
$results = $db->loadObjectList();

但它没有显示任何数据。我尝试将最后一行更改为:

$results = $db->loadResult();

但它也不起作用。

4

2 回答 2

4

如果您在发布时使用它,则不会在查询中包含 $id 的实际值。您需要将其附加到字符串中,如下所示:

$query->select('avatar')
 ->from('#__discuss_users')
 ->where('id = '.$id);

我通常不使用 $query->select 的东西,而是一个普通的旧查询。因此,您可以尝试这样做(尽管这可能不是最佳实践):

$user = JFactory::getUser();
$id = $user->get('id');

$db = JFactory::getDBO();  
// $query = $db->getQuery(true);

$query = "SELECT ".$db->quoteName('avatar')
         ." FROM ".$db->quoteName('#__discuss_users')
         ." WHERE ".$db->quoteName('id')
         ." = ".$db->quote($id).";";

// $query->select('avatar')
// ->from('#__discuss_users')
// ->where('id = $id');

$db->setQuery($query);
$results = $db->loadObjectList();
于 2013-09-17T09:55:51.400 回答
2

谢谢你的帮助。以下代码有效:

$user = JFactory::getUser();
$id = $user->get('id');

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query
 ->select($db->quoteName('avatar'))
 ->from($db->quoteName('#__discuss_users'))
 ->where('id = '.$id);

$db->setQuery($query);
$results = $db->loadResult();
echo $results;
于 2013-09-17T10:08:36.277 回答