Bonjour à tous,

Je fais appel à vous parce que je me casse les dents sur une erreur depuis plus d'une heure.

Je suis vers la vingtième minute de la vidéo et j'ai cette erreur :

Notice: Undefined property: PagesController::$Post in /Users/monobloclimber/sites web/mvc/controller/PagesController.php on line 6
Fatal error: Call to a member function find() on a non-object in /Users/monobloclimber/sites web/mvc/controller/PagesController.php on line 6

Pourtant mon code est identique à celui de Jonathan :

Contenu de pagesController.php :

<?php
    class PagesController extends Controller {
        function view($id){
                $this->loadModel('Post');
                $posts = $this->Post->find(array(
                    'conditions' => 'id=1'
                ));
                print_r($posts);
        }
    }
?>

Merci par avance pour votre aide.

3 réponses


monobloclimber
Auteur
Réponse acceptée

C'est bon j'ai trouvé mon erreur.
En fait j'avais oublié un '$' avant le 4eme name dans Controller.php

function loadModel($name){
        $file = ROOT.DS.'model'.DS.$name.'.php';
        require_once($file);
        if(!isset($this->$name)){
            $this-><<<$(ici)>>>name = new $name();
        }
    }

bonsoir,
tu peux mettre ta classe Model ?

Bien sûr

<?php
class Model {
    static $connections = array();
    public $conf = 'default';
    public $table = false;
    public $db;

    public function __construct(){
        //Je me connecte à la base
        $conf = Conf::$databases$this->conf];
        if (isset(Model::$connections$this->conf])){
            $this->db = Model::$connections$this->conf];
            return true;
        }
        try {
            $pdo = new PDO('mysql:host='.$conf'host'].';dbname='.$conf'database'].';',$conf'login'],$conf'password']);  
            Model::$connections$this->conf] = $pdo;
            $this->db = $pdo;
        }catch (PDOException $e) {
            if (Conf::$debug >= 1){
                die($e->getMessage());
            }else {
                die('La BDD n\'est pas disponible');
            }
        }
        //J'initialise quelques variables
        if($this->table === false){
            $this->table = strtolower(get_class($this)).'s';
        }

    }   
    public function find($req) {
    //  $sql = 'SELECT * FROM table WHERE conditions';
    die($this->table);
    }
}
?>

Voilà Merci encore