Bonjour tout le monde !

Je débute actuellement avec Cake Php... J'ai suivit le tuto du site et je n'arrive pas a afficher correctement le résultat de mon controller ..

Mes différents fichiers :

PostController.php

<?php
class PostsController extends AppController {
var $name='Posts';
    function index()
    {
        $q = $this->Post->find('all');
        $this->set('articles',$q);
    }
}

?>

Post.php

<?php
class Post extends AppModel
{
    var $name='Post';
}
?>

Index.ctp

<h1>Titre</h1>
<?php
echo $articles;
?>

Et donc quand je vais sur ma page... J'ai cette erreur..

Notice (8): Array to string conversion [APP\View\posts\index.ctp, line 5]

Et quand je fais un debug($articles);

c'est vide..

Donc j'imagine que il y'a surement un soucis avec la BDD .. Mais je ne vois pas .. Une idée ? (je suis sur Cake 2.3)

3 réponses


Tit-LoW
Réponse acceptée

Bonjour,
Si tu fais ça :

<?php
class PostsController extends AppController {
var $name='Posts';

    function index()
    {
        $q = $this->Post->find('all');
        debug($q); die();
    }
}
?>

Et que tu n'as pas de retour, vérifies coté BDD.
Sinon question de simplicité de maintenance, Grafikart utilise quelque chose comme suit, et c'est vrai que je trouve ça plus simple.

<?php
class PostsController extends AppController {
var $name='Posts';

    function index()
    {
        $q'articles'] = $this->Post->find('all');
        $this->set($q);
    }
} 
?>

Ça revient au même mais au moins tu peux faire passer plusieurs ensemble de données avec la même variable.

Hum.. Ca ne m'affiche une page blanche et " \app\Controller\PostsController.php (line 8)"

Et si j'enlève le die j'ai mon débug vide.. Ensuite Cake m'informe sur la requête,

Nr Query Error Affected Num. rows Took (ms)
1 SELECT Post.id, Post.titre, Post.contenu, Post.date, Post.category\_id FROM blog.posts AS Post WHERE 1 = 1 3 3 0

(Pas très lisible mais bon on voit bien que les 3 lignes de ma BDD sont affetées.. pourquoi ne les renvoie 'il pas .. ) =/

Bon je me suis attardé de nouveau sur le problème.. J'ai tout simplement refais ma base de données... Le mystère restera entier quand au paramètre qui à fait apparaître cette erreur ^^ Merci quand même !