0

我很困惑如何在 joomla 2.5 中投影模型结果

我有正在初始化模型的控制器

class FrontpageMyComponentControllerItem extends JControllerLegacy
{

    private $id;

    public function display($cachable = false, $urlparams = array())
    {
        // Initialise variables.
        $jinput = JFactory::getApplication()->input;
                $this->id = $jinput->get('id');
        $cachable = true;

                $model = $this->getModel('item');
                $result_in_view = $model->Item('23'); //$id what I get

        // Set the default view name and format from the Request.
        $viewName = $jinput->get('view', 'item');
        $jinput->set('view', $viewName); 

        return parent::display($cachable, $safeurlparams);
    }

}

现在我怎么看结果?

4

1 回答 1

0

在大多数组件中,数据(结果)是由ViewModel中检索的。

我不太确定为什么,但我想这是为了给 Views 更多的权力。

FrontpageMyComponentViewItem extends JViewLegacy
{
    /** @var  array  Data are stored here */
    public $items;

    public function display($tpl = null)
    {
        /** Retrieve data from Model */
        $items = $this->get('Items');

        // Check for errors.
        if (count($errors = $this->get('Errors')))
        {
            // Raise an error
            JError::raiseWarning(500, implode("\n", $errors));

            return false;
        }

        // Assign data, so layout can access these
        $this->items =& $items;

        parent::display($tpl);
    }
}

这与通常的 MVC 实现不同,其中ControllerModel检索数据并将其传递给View

如果您想在 Joomla 中查看此示例,请查看Joomla 2.5 中的 MediaController

有时可能不需要视图(输出为 JSON),然后您可以在控制器内检索数据并使用搜索建议echo中的类似立即输出

Joomla中有新的 MVC(vs legacy)类,但核心组件仍然不使用它们。

于 2013-04-29T10:00:13.607 回答