web-dev-qa-db-fra.com

Quel est l'objectif de $ this-> get ('Item') dans le fichier d'exemple Joomla view.html.php?

Je me réfère au code ci-dessous, présenté dans Développement d'un composant MVC - Exemple de fonction frontale:

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

}

Je ne comprends pas le but de cette déclaration et je remarque aussi que $item n'apparaît pas dans le code du fichier site/views/updhelloworld/tmpl/default.php sur cette page Web.

J'ai en fait la même question pour le view.html.php fichier de com_users/views/registration de Joomla 3 code (j'ai pensé qu'en comparant les deux formulaires, je pouvais répondre à ma question):

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

Et aussi ici $this->data n'apparaît pas dans le fichier tmpl/default.php (?)

6
Joppo

Dans les classes étendues JView ou JViewLegacy, un appel à $this->get() appellera une fonction dans les classes de modèle enregistrées commençant par get. Donc, appeler $this->get('Item') appellera la méthode getItem d'un modèle.

5
Michael

Le $this->get('Item') appelle la fonction getItem() dans le modèle, puis charge les données de la base de données.

$this->get('Data') appelle une méthode du modèle qui récupère les données du formulaire d'enregistrement et les prépare pour utilisation.

Regardez getData dans com_users/models/registration.php

3
patterncatcher