1 pièce(s) jointe(s)
Erreur "Call to a member function getTitle() on string" lors d'un ajout d'article
Bonjour,
comme indiqué dans le titre, je souhaite ajouter un nouvel article sur mon blog. J'utilise le MVC et le CRUD (Create, read, update, delete).
et içi c'est la méthode CREATE.
Voila ma fonction newPost :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<?php
require_once('model/Manager.php');
require_once('Entity/Post.php');
class PostManager { //AJOUTER UN NOUVEL ARTICLE
public function newPost($post) {
$connexion = new Manager();
$db = $connexion->dbConnect();
$req = $db->prepare('INSERT INTO posts(title, content, creation_date) VALUES(?, ?, NOW())');
var_dump($req);
$req->bindValue(1, $post->getTitle(), \PDO::PARAM_STR);
$req->bindValue(2, $post->getContent(), \PDO::PARAM_STR);
$req->execute();
var_dump($req);
return $req;
} |
Le controleur :
Code:
1 2 3 4 5 6 7
| //Ajouter un post
function addNewPost($post) {
$postManager = new PostManager();
$posts = $postManager->getPosts();
$req = $postManager->newPost($post);
header('Location: index.php?action=listPosts'); //Une fois l'article ajouté, renvoi sur la page d'accueil listPosts
} |
içi mon entité :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
<?php
class Post {
//Attributs
private $_id;
private $_title;
private $_content;
private $_creation_date;
//SETTERS
public function setTitle($title) {
if(is_string($title)) {
$this->_title = $title;
}
}
public function setContent($content) {
if (is_string($content)) {
$this->_content = $content;
}
}
public function setDate($creation_date) {
$this->_creation_date = $creation_date;
}
//GETTERS
public function getId($id) {
return $this->_id;
}
public function getTitle() {
return $this->_title;
}
public function getContent() {
return $this->_content;
}
public function getDate() {
return $this->_creation_date;
}
} |
lorsque j'envoi le nouvel article, cela m'affiche cette erreur :
Pièce jointe 584563
Je peux lire l'erreur mais je ne la comprends pas , car pour moi le code est bon.
Quelqu'un peut m'aider ?