IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Passer des variables a la vue


Sujet :

Langage PHP

  1. #1
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut Passer des variables a la vue
    Bonjours,

    J'essaye de faire passer de simple variable a la vue mais cela ne semble pas marcher voici mon code sur un systeme MVC.

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    include '../application/configs/application.php';
    include '../application/helpers/include.php';
    include '../application/helpers/html.php';
     
    include LIBRARY_PATCH . 'controllers.php';
    include LIBRARY_PATCH . 'models.php';
     
    	if (file_exists(CONTROLLERS_PATCH . $getController . '.php'))
    	{
    		include CONTROLLERS_PATCH . $getController . '.php';
     
    		$controller = new $getController;
     
    		if(method_exists($getController, $getAction))
    		{
    			$controller->$getAction();
    		} else {exit('error action non defini');}
     
    	} else {exit('le controller n\'existe pas !');}
    controllers/index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    class Index extends controllers{
     
    	public function index() 
    	{	
    		$d= array();
    		$d['tuto'] = array('test' => 'test');
    		$this->set($d); #tentative de faire passer $d a la vue
    		$this->loadModel('IndexModel');
    		$plop = 'plop';
    		$this->renders('index');
    	}
    }
    views/index/index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php var_dump($thisd);?> #return NULL
    La controller lui meme controller.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?php
     
    class controllers {
     
    	var $vars = array();
    	private $layout = LAYOUT_NAME;
     
    	public function set($d) {
    		$this->vars = array_merge($this->vars, $d);
    	}
     
    	public function renders($file)
    	{
    		extract($this->vars);
    		ob_start();
    		require VIEWS_PATCH . get_class($this) . '/' . $file . '.php';
    		$content = ob_get_clean();
    		if ($this->layout == false)
    		{
    			echo $content;
    		}else {
    			require LAYOUTS_PATCH . '/' . $this->layout . '.php';
    		}
    		//include LAYOUTS_PATCH .  '/' . $this->layout . '.php';
    	}
     
    	public function loadModel($name) {
    		include MODELS_PATCH . $name . '.php';
    		$this->$name = new $name();
    	}
    }
     
    ?>
    Si quequ'un de gentil voudrai m'expliquer.. parce que la je ne comprends ou est le bug.

    Merci

  2. #2
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut
    D'un autre coté c'est normal que je ne puiss les recuperer puisque quand je fais __CLASS__ rien n'est retourné.

    Il faudrai que je sois dans la classe du controller.

    QUelqu'un peut m'aider ?

  3. #3
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut
    Dans le controller dans la methode index il suffit de faire :

    Et dans la vue :

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ZF 1.10] Passer des variable de vue dans init()
    Par MaitrePylos dans le forum MVC
    Réponses: 4
    Dernier message: 23/07/2010, 08h53
  2. Réponses: 6
    Dernier message: 19/12/2005, 13h41
  3. Réponses: 11
    Dernier message: 09/12/2005, 14h59
  4. [C#][XSLT] Passer des variables
    Par Landolsi dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 30/09/2005, 14h26
  5. Réponses: 3
    Dernier message: 03/02/2005, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo