accès impossible à Faker\Factory

Par mawenakev, il y a 6 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\ORM\EntityManagerInterface;
use App\Entity\Article;
use App\Form\ArticleType;
use App\Repository\ArticleRepository;
use Fake\Factory;

class BlogController extends AbstractController
{
/**

/**
 * @Route("/blog", name="blog")
 */
public function index(ArticleRepository $repo)
{
    $articles = $repo->findAll();
    return $this->render('blog/index.html.twig', [
        'controller_name' => 'BlogController',
        'articles' => $articles,
    ]);
}

/**
 * For create an article
 *
 * @Route("/blog/new", name="blog_create")
 * @Route("/blog/{id}/edit", name="blog_edit")
 */
public function form(Article $article = null, Request $request, EntityManagerInterface $manager){
    ($article) ? null : $article = new Article();

    // $form =$this->createFormBuilder($article)
    //             ->add('title')
    //             ->add('content')
    //             ->add('image')
    //             ->getForm();

    $form = $this->createForm(ArticleType::class, $article);    //Création de l'objet de formulaire


    $form->handleRequest($request); //Analyse de la requêtte et remplissage si besoin de l'article
    if($form->isSubmitted() && $form->isValid()){
        ($article->getId()) ? null : $article->setCreatedAt(new \DateTime());
        $manager->persist($article);
        $manager->flush();
        return $this->redirectToRoute('blog_show', ['id' => $article->getId()]);
    }

    return $this->render("blog/form.html.twig", [
        'formArticle' => $form->createView(),
        'editMode' => $article->getId() !== null
        ]);
}

/**
 * @Route("/blog/{id}", name="blog_show")
 */
public function show(Article $article){
    return $this->render("blog/show.html.twig", [
        'article' => $article,
    ]);
}

}

Je voudrais utiliser un Faker pour générer des fixtures, mais le framework ne retrouve pas la librairie et renvoie le message suivant :

Did you forget a "use" statement for e.g. "Faker\Factory" or "Doctrine\Migrations\Version\Factory"? ``` je penses personnelement qu'il s'agit d'un problème de namespace mais je n'ai aucune idée de comment le resoudre. Y'a t'il un moyen de me sortir de là? Merci de votre aide ;) Bonne journée !

2 réponses

mawenakev, il y a 6 ans

Merci beaucoup, ça à résoulu mon problème! passe une bonne journée

youssef elgharib, il y a 6 ans

Il faut faire
use Faker\Factory;
n'est pas
use Fake\Factory;