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 !
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 ;)
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()]);
}
}
oui et si l'erreur persiste même en voulant supprimer le cache, supprime aussi le dossier var/
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
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..
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 ?
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 ;)
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 !