Bonjour à tous,

Tout d'abord je tiens à remercier Grafikart pour le boulot fournis et son partage. Des gens qui se donnent autant de peine pour aider les autres, c'est de plus en plus rare de nos jours. Donc voila, merci tout simplement.

Sinon je rencontre un petit soucis dans ton tuto "Créer un site de A-Z Jour 5".
Lorsque l'on édite un article dans l'administration, puis que l'on valide, tu nous expliques comment faire en sorte pour que l'on soit redirigé sur la même page, malgré que l'url soit "cockpit/posts/edit" et donc qu'il n'y ait pas d'"id" dans l'url.

Malgré tes explications, et que mon code soit identique au tiens, j'ai toujours l'erreur "Notice: Trying to get property of non-object in C:\Program Files\wamp\www\xxx\core\Form.php on line xx".

J'ai donc cherché et cherché dans mon code d'où provenait l'erreur et j'ai fini par trouver.
En fait, c'est la ligne "$this->id = $this->db->lastInsertId();" dans le save() de Model.php qui pose problème.
Sa valeur est de 0. Donc l'erreur est logique OK.
Si je commente cette ligne, là tout va bien, "id" récupère bien l'"id" de l'article que j'ai édité.

Alors est-ce que je laisse mon code comme tel (sans le lastInsertId()) ou bien est-il indispensable ?
Si il l'est, comment résoudre ce problème ?

Merci de votre aide ;)

2 réponses


gwena
Auteur
Réponse acceptée

Ok c'est bon Grafikart j'ai résolu mon problème !
En fait j'ai regardé un peu plus loin la vidéo et j'ai vu que tu l'avais enlevé aussi seulement on ne te voit pas le faire (je suppose que c'est dû au montage).
Ensuite lorsque tu le réutilise mais uniquement pour le insert,

if($action == 'insert')
{
    $this->id = $this->db->lastInsertId();
}

et bien là il marche pour moi aussi.

Merci d'être venu à mon aide en tous cas.

Et vive tes tutos l'ami !!

bizarre le lastIntertId peut être util oui, essaie de voir si $this->db contient bien les informations, sinon trouve un autre moyen de renvoyer l'id après insertion :)