$this->get('State') retourne null

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] $this->get('State') retourne null

    Bonjour,

    Je dois débugger aujourd'hui un composant sous J3.

    Comme indiqué dans le titre, j'ai une erreur à l'initiation de la vue, dans le fichier view.html.php

    Code:
    $this->state = $this->get('State');
    $this->state est null. Je ne parviens pas à comprendre pourquoi cette valeur est retournée. Auriez-vous une idée ?
    Merci.


    Dernière édition par sebg à 15/01/2025, 14h38

  • #2
    Bonjour,
    En Joomla 3 (en 4 et 5 aussi), la variable state est initialisée dans le model associé à ton view.
    Habituellement, c'est dans la fonction display où il y a $this->state = $this->get('State');
    Pascal
    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Merci, mais ici elle est intitialisée dans la vue HTML. Et $this->get('State') retourne null... Je n'en comprends pas la raison.

      Commentaire


      • #4
        Au niveau du model, y a-t-il une fonction populateState ?
        If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

        Commentaire


        • #5
          Bonjour,

          Oui, il y en a une... Mais elle n'appelle pas cette fonction.

          Commentaire


          • #6
            Envoyé par sebg Voir le message
            Bonjour,

            Oui, il y en a une... Mais elle n'appelle pas cette fonction.
            C'est l'inverse ;
            Code PHP:
             $this->get('State')​ 
            dans ta vue, appelle la méthode
            Code PHP:
              public function getState($property null$default null){
                if (
            $this->state === null) {
                    
            $this->state = new State();
                }
                 if (!
            $this->__state_set) {
                    
            // Protected method to auto-populate the state
                    
            $this->populateState();
                     
            // Set the state set flag to true.
                    
            $this->__state_set true;
                }
                 return 
            $property === null $this->state $this->state->get($property$default);
            }
            ​​ 
            d'une des classes mère du model qui donc elle-même appelle :
            Code PHP:
              $this->populateState();
            ​ 
            du model, si elle n'a pas déjà été appelée.
            Dernière édition par roland_d_alsace à 16/01/2025, 16h11
            A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
            Rejoignez le Joomla Users Groupe Alsace...
            roland_d_alsace va-t-il devenir roland_du_grand_est ?

            Commentaire


            • #7
              Bonsoir,

              Merci, en effet, il ne trouvait pas populateState, car le modèle était mal nommé. C'est vos interventions qui m'ont mis en lumière cette erreur. Merci !

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X