ti-enxame.com

Qual é o objetivo de $ this-> get ('Item') no arquivo de exemplo do Joomla view.html.php?

Refiro-me ao código abaixo, apresentado em Desenvolvendo um componente MVC - Exemplo de função de front-end :

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

}

Não entendo o objetivo desta declaração e também noto que $item não aparece no código do arquivo site/views/updhelloworld/tmpl/default.php nessa página da web.

Na verdade, tenho a mesma pergunta para o view.html.php arquivo de com_users/views/registration do código do Joomla 3 (pensei em comparar os dois exemplos de envio de formulários, poderia responder minha pergunta):

    $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');

E também aqui $this->data não aparece no relacionado tmpl/default.php arquivo (?)

6
Joppo

Nas classes que estendem JView ou JViewLegacy, uma chamada para $this->get() chamará uma função nas classes de modelo registradas, começando com get. Assim, chamar $this->get('Item') chamará o método getItem de um modelo.

5
Michael

O $this->get('Item') chama a função getItem() no modelo e, subsequentemente, carrega os dados do banco de dados.

$this->get('Data') chama um método no modelo que obtém os dados do formulário de registro e o prepara para uso.

Dê uma olhada em getData in com_users/models/registration.php

3
patterncatcher