Bonjour, je suis en train de développer un site avec CakePHP, sur ma page d’accueil je souhaiterais récupérer les 2 derniers articles, et les 2 derniers commentaires. J'ai réussi à récupérer les 2 derniers articles, mais je n'arrive pas à me connecter avec une deuxième table pour récupérer les 2 derniers commentaires sur le model Accueil.
En fait je souhaiterais savoir comment on peut faire pour récupérer 2 tables dans 1 seul model.
Si quelqu'un peut m'aider, je le remercie.
Merci d'avoir pris le temps de lire mon message.
Merci, au revoir.
Si tu n'a pas de relations entre c'est deux model tu n'a pas le choix de faire un loadModel dans l'action et créer une nouvelle requête et d'envoyer le résultat à la vue
Exemple :
//On est dans le Controller Homepages
public function index()
{
$this->loadModel('Commentaire');
$this->set('commente', $this->Commentaire->find('all'));
}
La deuxieme solutions consiste à créer toi même la requêtes dans le model " getDataSource()" de ton choix et ensuite de l’appeler via le controller
Exemple :
public function getCommentaire()
{
$query = 'SELECT * FROM commentaires';
return $this->getDataSource()->fetchAll($query);
}
techniquement tu dois avoir ton model Article qui possède la relation hasMany avec ton modèle Commentaire
avec une relation bien faite tu arrivera aisément à récupérer les commentaires d'un article donné... Après regarde cette vidéo: http://www.grafikart.fr/tutoriels/cakephp/commentaires-blog-cakephp-53 elle traite des commentaires, tu devrais trouver des points communs avec ton problème...
Bonjour, merci pour votre réponse, mais quand je dis les commentaires, je parle des commentaires du livre d'or et non ceux des articles (il n'y en a pas). Les commentaires du livre d'or et les articles n'ont aucuns liens. Sinon merci pour votre réponse.
Bonjour Orion, merci beaucoup pour votre réponse qui m'a aidé, c'est vrai que je n'y pensais plus à faire un loadModel.
Merci pour votre réponse.
Pour la deuxieme solutions j'ai quand même oubliez de précisez qu'il fallait quand même faire un loadModel