Ok, je vais essayer d'aider à "apprendre à un homme comment pêcher".
Les modèles de gâteau représentent des tables de base de données. Chaque modèle peut avoir associations défini, tel que belongsTo, hasMany, hasOne, etc. Quand vous définissez une association, le gâteau le reconnaît et obtient toutes les données relatives dont vous avez besoin. Par exemple, supposons que vous ayez un modèle Post et un commentaire de modèle. Si vous définissez une association entre eux (Post-hasMany-Comment, et Comment-belongsTo-Post), le gâteau fonctionnera la magie chaque fois que vous faites un Post-> find() ou Comment-> find()
Qu'est-ce que cela signifie?Si vous faites quelque chose comme ceci:
$ data = $ this-> Post-> findByTitle ('votre titre de poste');
La variable $ data contiendra non seulement les données de votre publication, mais également tous les commentaires associés. Vous pouvez toujours voir ce qui est là-dedans en appelant debug($data);
Le niveau de gâteau « profondeur » ira avec les données peuvent être réglés en utilisant le recursive propriété/paramètre, ou en utilisant le comportement Containable intégré.
Un autre avantage de définir des associations entre modèles (pour répondre à votre commentaire sur la réponse de Rob) est que vous n'avez pas besoin de mettre tous vos modèles dans le $ uses var. En fait, ce serait la mauvaise chose à faire.
Croyez-le ou pas, mais une fois que vous avez défini vos associations correctement, cela fonctionne:
class PostsController extends AppController
{
// not really needed, cake detects it automagically
var $uses = array('Post');
function index()
{
$comments = $this->Post->Comment->find('all');
}
}
Sweet, est-ce pas?
Dans votre cas, ce serait quelque chose comme ceci:
$this->Table1->find
(
'all',
array
(
'conditions' => array
(
'Table2.foreign_key_id_table3' => X
)
)
);
Il y a beaucoup d'autres conseils utiles lorsque vous travaillez avec de gâteau fonctions intégrées et des classes, donc je vous suggère de prendre un certain temps apprendre le gâteau correctement, il vous facilitera la vie.
Merci pour votre aide, je ne suis pas vraiment utilisé pour toutes ces CakePHP fonctions vaudous donc, si je suis bien cela dans le contrôleur CommentsController classe extends AppController { var $ utilise = array (« Commentaire », ' Post ',' Utilisateur '); ... avec les associations dans les modèles commentaire appartient à poster message appartient à l'utilisateur utilisateur a de nombreux messages quand je veux montrer tous les commentaires d'un utilisateur je dois trouver (« champ », array ('conditions' => array ('User.id' => x))); avec la condition Utilisateur même si je suis dans le contrôleur de commentaire comme j'ai inporté les autres modèles –