Bah tout est dans le titre, ma fonction findFirst me retourne toujours le même article même en changeant l'id
Apparemment cela vient du current($this->find($req))
Mon Model.php
<?php
/**
* Permet de faire le lien entre le serveur et une base de données
*/
class Model
{
/**
* @var string Le nom de la base de donnée
*/
public $conf = 'default';
/**
* @var string le nom de la table utilisée
*/
public $table = false;
/**
* @var array Les connections à la base de de donnée
*/
static $connections = array();
public $db ;
function __construct()
{
// Connection à la base de donnée
$conf = Configurations::get('databases',$this->conf);
if (isset(Model::$connections$this->conf])) {
$this->db = Model::$connections$this->conf] ;
return true;
}else{
// On se connecte à la base de donnée
try {
$pdo = new PDO('mysql:host='.$conf->host.';dbname='.$conf->database.';',
$conf->login,
$conf->password,
array(PDO::MYSQL_ATTR_INIT_COMMAND => ' SET NAMES utf8')
);
Model::$connections$this->db] = $pdo ;
$this->db = $pdo;
} catch (PDOException $e) {
if (Configurations::get('mode') != 'developpement') {
die( "Une erreur s'est produite lors de l'accès à la base de donnée veuillez réessayer plus tard.");
} else {
die($e->getMessage());
};
}
}
// Initialisation des variables
if ($this->table === false ) {
$this->table = strtolower(get_class($this)).'s';
}
}
public function find($req)
{
$sql = 'SELECT * FROM '.$this->table.' as '.get_class($this).' ';
$pre = $this->db->prepare($sql);
if (isset($req'conditions'])) {
$sql .= ' WHERE '.$req'conditions'];
var_dump($sql);
}
$pre->execute();
return $pre->fetchAll(PDO::FETCH_OBJ);
}
public function findFirst($req)
{
return current($this->find($req));
}
}
Re,
je viens de voir une erreur, tu prépares ta requete ici $pre = $this->db->prepare($sql); et ensuite tu ajoutes tes conditions, donc elles ne sont pas prises en compte.
Ça vient plutôt de ton PageController.php, où tu dois avoir dans le tableau de requête, un 'id=1' qui se balade, si tu avais regardé le tutoriel jusqu'au bout, tu aurais vu que Graphikart change ensuite pour un 'id='.$id
non j'ai bien fait
'conditions'=>'id='.$id
et j'ai regardé le tutoriel au moins cinq fois