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.
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();
}
}
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