[CakePHP] Recupérer le Model lié à une table

Eléphant du PHP | 398 Messages

10 janv. 2011, 17:59

Tout est dit dans le titre :).
Ayant le nom d'une table, je désirerai savoir s'il y a moyen de lui récuperer le Model associé. L'inverse est tres facile à faire.
Ptete en essayant de récupérer les méthodes du scripts Bake.php qui construit l'architecture MVC à partir des tables de la BD mais c'est légerement complexe :D

Merci d'avance

EDIT : dans le script cake/libs/inflector.php, j'ai trouvé quelques méthodes comme camelize() qui à l'air de faire ce que je veux...
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

Eléphant du PHP | 398 Messages

10 janv. 2011, 18:23

En fait j'ai trouvé.
Si vous êtes dans un controller, et que vous souhaiter charger un model en ayant que le nom de la table voila le code :
echo 'Nom de la table : ' . $table;
//exemple : r_type_territoires		
if(class_exists('Inflector')){

	$modelTable = Inflector::classify($table);
	echo '<br>Nom du model : ' . $modelTable;
	loadModel($modelTable);
	if(class_exists($modelTable)){
		echo '<br>Chargement de la classe ' . $modelTable; //affiche RTypeTerritoire
		$this->Model = new $modelTable();
		echo '<pre>';
		print_r($this->Model);
		echo '</pre>';
		
	}else{
		echo '<br>Pas de classe Model "' . $modelTable . '" correspondant';
	}
}
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe