**** ma fonction last() me retourne
( ! ) Notice: Trying to get property of non-object : je n'arrive pas à trouver la solution la requete SQL est bonne, la connexion à la db aussi... je pense que ça viens de ma fonction query mais pas sur, et je sais pas comment on met du code dans le forum pour que ça fasse joli... si quelqu'un a eu le meme souci ;-)

6 réponses


on a peu dinfo là. a mon avis tu essais d'appeler une fonction mais ta variable doit etre nulle

<?php foreach (App::getInstance()->getTable('post')->last() as $post): ?>

            <h2>
                <a href="<?= $post->url; ?>"><?= $post->title; ?></a>
            </h2>

 <?php endforeach; ?>

le probleme vient du $post-> //

public function last() {
        return $this->query('
            SELECT posts.id, posts.title, posts.content, posts.date, categories.title
            AS categorie
            FROM posts
            LEFT JOIN categories
              ON category_id = categories.id
            ORDER BY posts.date DESC');
    }
public function query($statement, $attributes=null, $one=false){
        if ($attributes){
            return $this->db->prepare(
                $statement,
                $attributes,
                str_replace('Table', 'Entity', get_class($this)),
                $one);
        }else{
            return $this->db->query(
                $statement,
                str_replace('Table', 'Entity', get_class($this)),
                $one);
        }

je precise que la fonction all() retourne bien un stdclass

Hello. Les données retournées sont sous forme de tableau et non pas sous forme d'objet.
Dans ton code, je vois que tu as défini un PDO::FETCH_CLASS, ce qui normalement devrait te retourner des données sous forme d'objet, donc je ne vois pas d'où peut venir le problème à moins que le nom de la classe donné à PDO::FETCH_CLASS est mauvais. Fichier MysqlDatabase.php:query.

oui, je je pense que ça viens du refactoring que j'ai pas fait correctement, je reprends tout depuis le depart et je vous tiens au courant