Passage de paramètre a un modèle

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

  • Passage de paramètre a un modèle

    Bonjour,

    j'essaie de bidouiller un peu le com_Helloword de la documentation en ligne.

    Sur la page "Adding a variable request in the menu type" (lien), je n'arrive pas a faire passer le paramètre id a mon modèle ...


    Dans mon url, j'ai bien le id :

    ]http://127.0.0.1:8888/test_J25/index.php?option=com_helloword&view=webludo&id=2&I temid=105

    code de la vue :
    Code:
    	// Overwriting JView display method
    	function display($tpl = null) 
    	{      
    		// Assign data to the view
    		$this->msg = $this->get('Msg');
                    
    		// Display the view
    		parent::display($tpl);
    	}
    }
    code du modele :
    Code:
    ...
    	protected $messages = array(
    		1	=> 'Hello World!',
    		2	=> 'Good bye World!',
    	);
     
    	/**
    	 * Get the message
    	 * @param  int    The corresponding id of the message to be retrieved
    	 * @return string The message to be displayed to the user
    	 */
            
    	public function getMsg($id) 
    	{
                   
    		if (!isset($this->messages[$id])) 
    			$id = 1;
                    
    		return $this->messages[$id];
    	}
    ...
    et j'ai toujours la valeur "hello word " qui me revient car le $id n'est pas renseigné ...

    J'y ai passé mon samedi après-midi ...

    pourtant c'est le code de base de la doc officielle ... je n'arrive pas a piger le truc ...

    Si quelqu'un a une idée ?

    Amicalement



    Olivier

  • #2
    Re : Passage de paramètre a un modèle

    Bon j'avance un peu ... après avoir cherché partout ou était stockée ma variable, j'ai vu qu'elle était passée par l'URL ...

    Mais je ne m'explique toujours pas comment passer une variable à la fonction de mon modèle :
    Code:
    	public function getMsg($id) 
    	{
                
                 
    		if (!isset($this->messages[$id])) 
    			$id = 1;
     
    		return $this->messages[$id];
    	}
    }
    avec le code de l'exemple :

    Code:
    $this->msg = $this->get('Msg');
    je suis habitué a passer mes paramètres avec la fonction , mais si je reprends le code de l'exemple , c'est comme ci-dessus et ça marche pas.

    Pour que ça fonctionne , dans ma fonction du modèle je dois mettre un

    Code:
     
    	public function getMsg($id) 
    	{
                $id=JRequest::getVar( 'idListe');
                 
    		if (!isset($this->messages[$id])) 
    			$id = 1;
     
    		return $this->messages[$id];
    	}
    ...donc mon $id passé en paramètre ne sert à rien ...

    je nage , je nage

    Olivier

    Commentaire


    • #3
      Re : Passage de paramètre a un modèle

      Et oui toujours moi ... dans les multiples ( et c'est pas peu dire !) sites que j'ai consultés ce week-end j'ai trouvé un tuto qui avance ce type de code dans le modèle :

      Code:
      ...
      public function store(){   
           $row =& $this->getTable();
           $data = JRequest::get( 'post' );
           $data['id'] = JRequest::getVar('id', '', 'post', 'int');
           $data['published'] = JRequest::getVar('published', '', 'post', 'int');
           $data['tag'] = JRequest::getVar('tag', '', 'post', 'string');
           $data['url'] = JRequest::getVar('url', '', 'post', 'string');
           $data['rel'] = JRequest::getVar('rel', '', 'post', 'string');
      ...
      ce qui me turlupine ... c'est que , à l'intérieur du modèle il appelle directement les valeurs passées en POST ... OK ça marche.
      Ce qui me ramène à mon problème de ce week-end , est-la façon de faire ? sinon comment utiliser cette fonction en lui passant les paramètres en argument, ce qui me semble plus "propre" ( ou est-ce que je me trompe ?) , par exemple :


      dans ma vue :
      Code:
      $options = array(
      
      'id' => '1',
      'nom' => 'Lagaffe',
      'prenom' => 'Gaston'
      
      )
      
      $ret= $this->store($options);  
      
      /* mais je ne sais pas comment passer mon tableau $option !!

      Bonne fin de week-end


      Olivier

      Commentaire

      Annonce

      Réduire
      Aucune annonce pour le moment.

      Partenaire de l'association

      Réduire

      Hébergeur Web PlanetHoster
      Travaille ...
      X