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 に答える