【问题标题】:Second Select in Joomla 1.5 custom componentJoomla 1.5 自定义组件中的第二个选择
【发布时间】:2012-04-16 00:42:23
【问题描述】:

我已经开发了自定义组件。最初 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 提供数据。

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

提前致谢!

【问题讨论】:

    标签: joomla joomla1.5 joomla-extensions


    【解决方案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。

    希望这会有所帮助。

    【讨论】:

    • thatnks seavers 为答案.. 实际上它工作,我在上面写的代码.. 我不是说有额外的视图页面,我想让这些数据进入这个视图页面。我只有一个类型错误。所以上面发布的代码是正确的。但是谢谢!!!
    猜你喜欢
    • 2013-01-23
    • 2011-04-04
    • 1970-01-01
    • 2013-03-21
    • 2010-11-23
    • 2011-02-14
    • 1970-01-01
    • 2011-07-02
    • 2018-10-12
    相关资源
    最近更新 更多