0

我已经开发了自定义组件。最初 Joomla 1.5 具有将数据从表发送到模板的数据数组。

class MyComponentClass extends JModel{

    /**
     * MyComponentClass data array for tmp store
     *
     * @var array
     */
    private $_data;
    /**
     * MyComponentClass data array for tmp store
     *
     * @var array
     */
    private $_mine;

    /**
     * Gets the data
     * @return mixed The data to be displayed to the user
     */
    public function getData(){
        if (empty( $this->_data )){
            $id = JRequest::getInt('id',  0);
            $db =& JFactory::getDBO();
            $query = "SELECT * FROM `#__tourinfo` where `id` = {$id}";
            $db->setQuery( $query );
            $this->_data = $db->loadObject();
        }
        return $this->_data;
    }

    public function getMine(){
        if (empty( $this->_mine )){
            $recordSet =& $this->getTable('mytable');
            $db =& JFactory::getDBO();
            $query = 'SELECT * FROM `#__mytable` WHERE ' . (isset($recordSet->published)?'`published`':'1') . ' = 1 ORDER BY `id` ';
            $this->_mine = $this->_getList( $query, $this->getState('limitstart'), $this->getState('limit') );
        }   
        return $this->_mine;
    }   

}

根据文档,我只看到将信息发送到模板的 $_data 数组。

此模型为单个记录视图发送数据。

在其他表中,我有一些与此记录关联的数据。

当我尝试将数据接收到模板中时,出现一个错误,即没有向 foreach 提供数据。

可能有人知道这种情况的解决方案。

提前致谢!

4

1 回答 1

1

您在 yourcomponent/view/yourview/view.html.php 文件中分配模板所需的任何数据。

请参见:

http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1

下面是 view.html.php 文件中典型方法的示例:

function listItems()
{
    $model = &$this->getModel('yourmodel');
    $items = $model->getItems();
    if ($items) {
            $this->assignRef( 'items', $items );
    }

    parent::display($tpl);
}

注意上面代码中的赋值:

$this->assignRef('items', $items);

然后你可以在你的模板中调用 $this->items 来循环你的 foreach。

希望这可以帮助。

于 2012-04-16T15:35:55.357 回答