En mi opinión, la forma correcta de hacer esto es agregar una función a su modelo actual que ejemplifica el otro modelo y devuelve los datos necesarios.
He aquí un ejemplo que devuelve datos del modelo de proyecto en un modelo llamado Ejemplo y llama a los datos en el controlador Ejemplo:
Uso de proyecto modelo dentro Ejemplo Modelo:
<?php
/* Example Model */
App::uses('Project', 'Model');
class Example extends AppModel {
public function allProjects() {
$projectModel = new Project();
$projects = $projectModel->find('all');
return $projects;
}
}
Volviendo esos datos en Ejemplo Controlador
// once inside your correct view function just do:
$projects = $this->Example->allProjects();
$this->set('projects', $projects);
En la vista Ejemplo
<?php
// Now assuming you're in the .ctp template associated with
// your view function which used: $projects = $this->Example->allProjects();
// you should be able to access the var: $projects
// For example:
print_r($projects['Project']);
¿Por qué es esta práctica "mejor" que la carga de ambos modelos en el controlador? Bueno, el modelo del Proyecto es heredado por el modelo de Ejemplo, por lo que ahora los datos del Proyecto se vuelven parte del alcance del modelo de Ejemplo.(Lo que esto significa en el lado de la base de datos de las cosas es que las 2 tablas se unieron usando las cláusulas SQL JOIN
).
O como dice el manual:
Una de las características más potentes de CakePHP es la habilidad para enlazar el mapeado relacional proporcionado por el modelo. En CakePHP, los enlaces entre los modelos se manejan a través de asociaciones. La definición de relaciones entre diferentes objetos en su aplicación debe ser un proceso natural. Por ejemplo: en una base de datos de recetas, una receta puede tener muchas reseñas, las revisiones tienen un solo autor y los autores pueden tener muchas recetas. Definir la forma en que funcionan estas relaciones le permite acceder a sus datos de una manera intuitiva y poderosa. (source)
una pregunta similar se ha hecho antes en: http://stackoverflow.com/questions/2895098/how-to-load-a-model/2895136 – Vicer