1

我使用 Joomla 2.5 框架。
我有简单的表格,例如:

int id
string itemid

现在我只想使用 JTable 将所有 'itemid' 加载到数组中。这里有可能吗?

4

2 回答 2

1

JTable 类的所有内容都只处理一行,一旦涉及到多行,您有两种选择:

1)使用您提供的解决方案。

2) 覆盖 Table 类中的 load() 函数。这可以如下完成:

将以下 load() 函数放入您的 Table 类中:

 function load($key = null)
    {

            $db = $this->getDBO();
            $query = $db->getQuery(true);
            $query->select($key);
            $query->from($this->getTableName());
            $db->setQuery($query);
            $row = $db->loadRowList();

             if ($db->getErrorNum()) 
             {
                $this->setError($db->getErrorMsg());
                return false;
             }

            // Check that we have a result.

            if (empty($row)) 
            {
                    return false;
            }

            //Return the array
            return $row;


    }

现在使用单个参数“itemid”调用 load() 函数,并获取所需的数组。

这对我有用,希望它对你也有帮助。

于 2013-03-08T09:42:10.253 回答
0

我决定使用的解决方案是从 JModelList 继承模型类:

class modelModelcomponent extends JModelList
{
        protected function getListQuery()
        {
            // Create a new query object.           
            $db = JFactory::getDBO();
            $query = $db->getQuery(true);

            // Select some fields
            $query->select('itemid');

            // From the hello table
            $query->from('#__table');

            return $query;
        }
}
于 2012-09-25T18:25:39.730 回答