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

ほとんどのコンポーネントでは、データ (結果) はViewによってModelから取得されます。

理由はよくわかりませんが、ビューにより多くの力を与えるためだと思います。

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);
    }
}

これは、 ControllerがModelからデータを取得してViewに渡す通常の MVC 実装とは異なります。

Joomla でこの例を見たい場合は、MediaController in Joomla 2.5を見てください。

場合によっては、ビューが必要ない場合があります (出力は JSON です)。その後、コントローラー内のデータを取得し、検索候補echoのように使用して即座に出力することができます。

Joomla には新しい MVC (対レガシー) クラスがありますが、コア コンポーネントはまだそれらを使用していません。

于 2013-04-29T10:00:13.607 に答える