web-dev-qa-db-ja.com

Joomla view.html.phpサンプルファイルの$ this-> get( 'Item')の目的は何ですか?

MVCコンポーネントの開発-フロントエンド関数の例 に示されている以下のコードを参照します。

class HelloWorldViewUpdHelloWorld extends JView
{
    // Overwriting JView display method
    function display($tpl = null) 
    {
            $app            = JFactory::getApplication();
            $params         = $app->getParams();
            $dispatcher = JDispatcher::getInstance();

            // Get some data from the models
            $state          = $this->get('State');
            $item           = $this->get('Item');  //WHAT IS THE PURPOSE OF THIS STATEMENT?
            $this->form     = $this->get('Form');

            // Check for errors.
            if (count($errors = $this->get('Errors'))) 
            {
                    JError::raiseError(500, implode('<br />', $errors));
                    return false;
            }
            // Display the view
            parent::display($tpl);
    }

}

このステートメントの目的が理解できず、また$itemがファイルのコードに表示されないsite/views/updhelloworld/tmpl/default.phpがそのWebページにある。

view.html.phpcom_users/views/registrationJoomlaコードについて同じ質問があります(比較して考えました2つのフォームは私の質問に答えることができる例を提出します):

    $this->data     = $this->get('Data'); //WHAT IS THE PURPOSE OF THIS STATEMENT? WHAT PRECISELY KIND OF DATA iS MEANT HERE?
    $this->form     = $this->get('Form');
    $this->state    = $this->get('State');
    $this->params   = $this->state->get('params');

そしてここにも$this->data関連するtmpl/default.phpファイルに表示されません(?)

6
Joppo

JViewまたはJViewLegacyを拡張するクラスでは、$this->get()を呼び出すと、getで始まる登録済みモデルクラスの関数が呼び出されます。したがって、$this->get('Item')を呼び出すと、モデルのgetItemメソッドが呼び出されます。

5
Michael

$this->get('Item')は、モデル内の関数getItem()を呼び出し、その後、ロードしますデータベースからのデータ。

$this->get('Data')は、登録フォームデータを取得して使用できるように準備するモデルのメソッドを呼び出します。

com_users/models/registration.phpgetDataを見てください

3
patterncatcher