在JViewLegacy中获取方法

时间:2016-08-17 11:12:07

标签: php joomla

我在Joomla中很新,我正在努力寻找一种似乎凭空出现的方法。

我遇到的问题是一个空变量,当它应该被

填充时
$items = $this->get('Items');

它位于文件view.html.php中,类名称为

class guruViewguruauthor extends JViewLegacy {}

如果这是一个愚蠢的问题,我很抱歉!

1 个答案:

答案 0 :(得分:1)

您的网站模型文件夹中的guruauthor模型类中应该有一个getItems方法。

 $items = $this->get('Items');

从模型中检索数据。如果你没有在model或getItems中定义getItems sql没有正确定义,你可能会得到一个空对象。

检查此链接可能会对您有所帮助

https://docs.joomla.org/Special:MyLanguage/J3.2:Developing_an_MVC_Component/Adding_a_model_to_the_site_part

我的一个组件

中的getItems方法示例
public function getItems($recursive = false)
    {
        if (!count($this->_items)) {

            // import Joomla Categories library
            //if you forget this -> Fatal error: Class 'JCategories' not found in ...
            jimport( 'joomla.application.categories' );

            $app = JFactory::getApplication();

            $options = array();
            $options['countItems'] = 20;

//$categories = JCategories::getInstance('Content', $options);

            $categories = JCategories::getInstance('eventmanagement', $options);

            $this->_parent = $categories->get('root');

            if (is_object($this->_parent)) {
                $this->_items = $this->_parent->getChildren($recursive);
            }
            else {
                $this->_items = false;
            }
        }

        return $this->_items;
    }

这将返回类别列表,在视图中我将其称为

 $categories = $this->get('Items');