Hola para hacer esto yo uso esto:
Código PHP:
Ver original/**
* Método para cargar los modelos
*
* @version 0.1
* @author Lucas M. sastre
* @access public
*
* @param <string> $nombre
* @return <void>
*/
public function modelo($nombre) {
return false;
}
foreach($nombre as $modelo) {
//valido si existe el archivo del modelo
if(file_exists($this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php')) { //valido si no esta instanciada la clase previamente
include_once($this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php');
$this->$modelo = new $modelo();
}
else {
$this->$modelo = new $modelo();
}
}
else {
$ruta = $this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php';
error_log("[".date("F j, Y, G:i")."] [Error: E_USER_NOTICE] [tipo modelos] No se encuentra el modelo: {$modelo} en {$ruta}- \n", 3,$this->Config->get('root').'/errores.log');
return false;
}
}
}
}
else {
//valido si existe el archivo del modelo
if(file_exists($this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php')) { //valido si no esta instanciada la clase previamente
include_once($this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php');
$this->$modelo = new $modelo();
}
else {
$this->$modelo = new $modelo();
}
}
else {
$ruta = $this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php';
error_log("[".date("F j, Y, G:i")."] [Error: E_USER_NOTICE] [tipo modelos] No se encuentra el modelo: {$modelo} en {$ruta}\n", 3,$this->Config->get('root').'/errores.log'); //trigger_error("No se encuentra la libreria: {$nombre} en {$ruta}<br/>",E_USER_NOTICE);
return false;
}
}
}
entonces en mi controlador puedo hacer esto:
Código PHP:
Ver original$this->modelo('blog'):
$this->Blog->metodoQueUsamos();
o tambien:
Código PHP:
Ver original$this->modelo(array('blog','post'): $this->Blog->metodoQueUsamos();
$this->Post->QueUsamos();