Fichier TaskType problème de ::class

Par Guizmo, il y a 5 ans


Bonjour,

Lorsque je clique sur ma page qui est censé m'envoyer sur un lien, cela m'indique :
"Could not load type "App\Form\TaskType": class does not exist."

Alors que pourtant il me semble avoir crée toutes mes class dans mon dossier "TaskType" comme le code ci-dessous :

<?php

namespace App\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;

class TaskType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, [
'label' => 'Nom'
])
->add('description', TextareaType::class, [
'label' => 'Description',
'required' => false
])
->add('dueDate', DateTimeType::class, [
'label' => 'Date d\'échéance',
'required' => false

        ])
        ->add('reminder', NumberType::class, [
            'label' => 'Rappel (en minutes)',
            'required' => false
        ])

        ->add('save', SubmitType::class)
    ;
}

}

Merci de votre aide !

15 réponses

BernardNgandu, il y a 5 ans

As tu importer la class dans le controller ?
essaie aussi de supprimer le cache

Guizmo, il y a 5 ans

Bonjour Bernard,
Oui biensûr voici le code de mon fichier TaskController.php

<?php

namespace App\Controller;

use App\Entity\Task;
use App\Entity\Listing;
use App\Form\TaskType;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;

/**

  • @Route("{listingId}/task", name="task_", requirements={"listingId"="\d+"})
    */
    class TaskController extends AbstractController
    {
    /**

    • @Route("/new", name="create")
      */
      public function create(EntityManagerInterface $entityManager, Request $request, $listingId)
      {
      $listing = $entityManager->getRepository(Listing::class)->find($listingId);

      $task = new Task();
      $task->setListing($listing);

      $form = $this->createForm(TaskType::class, $task);

      $form->handleRequest($request);

      if ($form->isSubmitted() && $form->isValid()) {
      $entityManager->persist($task);
      $entityManager->flush();

      return $this->redirectToRoute('listing_show', ['listingId' => $listingId]);

      }

      return $this->render('task.html.twig', ['form' => $form->createView()]);
      }
      }

BernardNgandu, il y a 5 ans

supprime le cache et composer dump-autoload

Guizmo, il y a 5 ans

On supprime le cache en faisant php bin/console cache:clear ?

BernardNgandu, il y a 5 ans

oui et si l'erreur persiste même en voulant supprimer le cache, supprime aussi le dossier var/

Guizmo, il y a 5 ans

J'ai procédé comme tu m'as dit et lorsque je recharge la page cela ne change pas mon problème :/

D:\Documents\Application_web\my_project_name>php bin/console cache:clear

// Clearing the cache for the dev environment with debug true

[OK] Cache for the "dev" environment (debug=true) was successfully cleared.

D:\Documents\Application_web\my_project_name>composer dump-autoload
Generating optimized autoload files
composer/package-versions-deprecated: Generating version class...
composer/package-versions-deprecated: ...done generating version class
Generated optimized autoload files containing 4715 classes

BernardNgandu, il y a 5 ans

vérifie le nom du fichier

Guizmo, il y a 5 ans

J'ai supprimé le dossier var et le nom de mon fichier est bien le bon, à mon avis il doit y avoir une erreur dans le code..

Guizmo, il y a 5 ans

C'est possible que l'erreur vienne de ma base de donnée ?

BernardNgandu, il y a 5 ans

Non je ne crois pas

Jessy Brs, il y a 5 ans

Bonjour, je vois ne vois pas trop d'erreur non plus à première vue.
As-tu bien ton fichier TaskType.php dans ton dossier src/FormTaskType.php ???

As tu installer la libraire form ? composer require symfony/form ?

Guizmo, il y a 5 ans

Ahhhhh puré j'avais mis le fichier Form dans bin au lieu de le mettre dans src, franchement bien vu ça marche parfaitement !!! :D
Merci Jessy ainsi qu'à Bernard pour votre aide ;)

Guizmo, il y a 5 ans

Ahhhhh puré j'avais mis le fichier Form dans bin au lieu de le mettre dans src, franchement bien vu ça marche parfaitement !!! :D
Merci Jessy ainsi qu'à Bernard pour votre aide ;)

Jessy Brs, il y a 5 ans

Ahah cool ! on adore ce gens d'erreur aussi xD

Guizmo, il y a 5 ans

Ouais c'est tellement bête parfois les erreurs surtout que c'est pas la première de ce genre que j'ai eu à gérer sur mon appli et elles te font perdre du temps pour rien (tout en restant patient ^^ ) mais bon quand tu te débloques ça fait vraiment plaisir :)
Encore merci !