Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/08/2011, 13h25   #1
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
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 :
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 :
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 :
1
2
 
<?php var_dump($thisd);?> #return NULL
La controller lui meme controller.php :
Code :
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
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 06h27   #2
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
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 ?
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 09h13   #3
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Dans le controller dans la methode index il suffit de faire :

Et dans la vue :
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h29.


 
 
 
 
Partenaires

Hébergement Web