Partage
  • Partager sur Facebook
  • Partager sur Twitter

class not found

Sujet résolu
    17 juillet 2018 à 11:02:27

    Bonjour

    J'ai une erreur que je n'arrive pas à supprimer

    Fatal error: Class 'Caro\New_blog_forteroche\Model\Post' not found in C:\wamp64\www\new_blog_forteroche\model\PostManager.

    Voici mon code

    <?php
    
    namespace Caro\New_blog_forteroche\Model;
    
    require_once "Manager.php";
    
    use \Caro\New_blog_forteroche\Model\Post;
    
    class PostManager extends Manager
    {
        
        public function addPost($title, $content) //ajoute un post
        {
            $db = $this->dbConnect();
            $addpost = $db->prepare('INSERT INTO posts(title, content, post_date) VALUES(?, ?, NOW())');
            $affectedLines = $addpost->execute(array($post->getTitle(), $post->getContent()));
    
            return $affectedLines;      
        }
    
        public function getlastPost() //récupère le dernier article
        {
            $db = $this->dbConnect();
            $req = $db->query('SELECT id, title, content, DATE_FORMAT(post_date, \'%d/%m/%Y à %Hh%imin\') AS post_date_fr FROM posts ORDER BY post_date DESC LIMIT 0, 1');
            $req->execute();
            $lastpost = $req->fetchAll();
            $post = new Post;
            $post->setId($lastpost['id'])->setTitle($lastpost['title'])->setPostDate($lastpost['post_date_fr']);
    
            return $post;
        }
    

    Je pense que c'est un pbl d'utilisation des namespaces mais je ne vois pas. je précise que ma class post se trouve dans un fichier post.php qui se trouve dans le fichier "model"

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
    Je poursuis des émotions, je trébuche dans des regards et je collectionne des cicatrices
      17 juillet 2018 à 11:07:51

      Salut !

      Sauf erreur, quand tu utilises use Ton\Super\EspaceDeNom;, il ne faut pas l'antislash après use, il serait implicite.

      • Partager sur Facebook
      • Partager sur Twitter
        17 juillet 2018 à 11:10:08

        Salut Ymox

        je vais aller vérifier l'info

        mais malheureusement, avec ou sans, ça ne change rien à mon pbl. une autre idée ?

        -
        Edité par carolineber 17 juillet 2018 à 11:10:35

        • Partager sur Facebook
        • Partager sur Twitter
        Je poursuis des émotions, je trébuche dans des regards et je collectionne des cicatrices
          17 juillet 2018 à 11:13:49

          Petite question : est-ce que ta classe non-trouvée est bien dans le fichier Manager.php, ou tu tentes d'inclure le fichier dans lui-même ?

          • Partager sur Facebook
          • Partager sur Twitter
            17 juillet 2018 à 11:24:29

            Heu non, la class se trouve dans le fichier Post.php qui se trouve lui même dans le dossier model

            Dossier Model : 

            - Manager.php

            - Postmanager.php (celui dont j'ai mis le code)

            - CommentManager.php

            - Post.php (où se trouve la class Post)

            - Comment.php

            tu y vois plus clair ?

            • Partager sur Facebook
            • Partager sur Twitter
            Je poursuis des émotions, je trébuche dans des regards et je collectionne des cicatrices
              17 juillet 2018 à 11:29:38

              Oui et non. Où est-ce que tu inclus (avec require_once ou autre) le fichier Post.php ?

              • Partager sur Facebook
              • Partager sur Twitter
                17 juillet 2018 à 11:59:55

                Yes, génial, c'est ça. le USE d doit être précédé d'un require Post.php

                évidemment !

                merci Ymox

                • Partager sur Facebook
                • Partager sur Twitter
                Je poursuis des émotions, je trébuche dans des regards et je collectionne des cicatrices

                class not found

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown