Bonjour,

Voila je rencontre un petit problème avec mon code.
quand j'essai d'afficher mon formulaire de registration symfony m'affiche cette erreur

Décrivez ici votre code ou ce que vous cherchez à faire
la classe registration a 3 clef secondaire et lorsque je veux enregistre je doit avoir des objets et pour recupere les objets je doit
passer par leur repository respective afin de recupere des objet et et de les passe a mon objet Registration


voila mon *RegistrationController

<?php

namespace App\Controller;

use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\Registration;

use App\Entity\Classes;
use App\Form\RegistrationType;
use Symfony\Component\Form\Forms;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\Form;
use App\Entity\Eleve;
use App\Repository\AnneeScolaireRepository;
use App\Repository\ClassesRepository;
use Doctrien\ORM\EntityManger;
//use App\Controller\AnneeScolaireController;

class RegistrationController extends Controller
{
    /**
     * @Route("/registration", name="registration")
     */
    public function index()
    {
        return $this->render('registration/index.html.twig', [
            'controller_name' => 'RegistrationController',
        ]);
    }
     /**
     * @Route("/registration/create", name="creation")
     */
    public function inscription(Request $request, ObjectManager $manager){

            $registre = new Registration();

            $repositoryannee =  $this->getDoctrine()->getRepository(AnneeScolaire::class);

             $Repclasse =  $this->getDoctrine()->getRepository(Classes::class);

               $anne = $repositoryannee->findById(3);

            $form = $this->createForm(RegistrationType::class, $registre);

            $form->handleRequest($request);

            if($form->isSubmitted() && $form->isValid()){
                         if($request->request->count() > 0){
                             $eleve = new Eleve();
                                   $eleve->setNom($request->request->get('nom'))
                                         ->setPrenom($request->request->get('prenom'))
                                         ->setDatenaissance($request->request->get('datenaissance'))
                                         ->setAdresse($request->request->get('adresse'))
                                         ->setNomtuteur($request->request->get('nomtuteur'))
                                         ->setPrenontuteur($request->request->get('prenontuteur'))
                                         ->setTelephone($request->request->get('telephone'))
                                         ->setAdressetuteur($request->request->get('adressetuteur'))
                                         ->setProfession($request->request->get('profession'))
                                 ;
                             $classe = $Repclasse->findOneBy(array(
                                'nom_classe' => $request->request->get('classe')
                             ));
                             $manager->persist($eleve);
                             $registre->setEleve($eleve)
                                        ->setClasse($request->request->get('classe'))
                                        ->setAnnee($anne)
                                        ->setCreatedAt(new \ DateTime())
                                        ->setMontantInscription($request->request->get('montantInscription'))
                                        ;
                                        dump($registre);
                                        $manager->persist($registre);

                                        $manager->flush();
                                        return $this->redirectToRoute("registration/show.html.twig");
                         }
            }
        return $this->render('registration/creates.html.twig', [
            'form' => $form->createView()
        ]);
    }

}

?>

je veux juste

Décrivez ici ce que vous cherchez à obtenir

 j'essai juste d'afficher mon formulaire

Class 'App\Controller\AnneeScolaire' does not exist

8 réponses


Bonjour.
C'est normal étant donné que tu importes la classe AnneeScolaireRepository via use mais que tu fais appel à la class AnneeScolaire, du coup le framework essai de charger la classe AnneeScolaire dans le même namespace dans lequel la classe est appelée.
Il te faut donc remplacer AnneeScolaire::class par AnneeScolaireRepository::class.

Petite remarque, pourquoi n'utilises-tu pas le système d'hydratation de ton/tes entité(s) par ton form?
Parce qu'alimenter ton entité par les valeurs du request, c'est pas génial... Et en plus tu te compliques la vie en faisant cela...
http://symfony.com/doc/current/forms.html#handling-form-submissions
Tu peux utiliser dans ton formulaire un sous-formulaire avec ton entité Eleve (voir http://symfony.com/doc/current/form/embedded.html), ce sera plus facile en maintenance...

khazim
Auteur

je vais essaye votre suggestion Digivia,

Décrivez ici votre code ou ce que vous cherchez à faire
la classe registration a 3 clef secondaire et lorsque je veux enregistre je doit avoir des objets et pour recupere les objets je doit
passer par leur repository respective afin de recupere des objet et et de les passe a mon objet Registration

Décrivez ici votre code ou ce que vous cherchez à faire
la classe registration a 3 clef secondaire et lorsque je veux enregistre je doit avoir des objets et pour recupere les objets je doit
passer par leur repository respective afin de recupere des objet et et de les passe a mon objet Registration

Décrivez ici votre code ou ce que vous cherchez à faire
la classe registration a 3 clef secondaire et lorsque je veux enregistre je doit avoir des objets et pour recupere les objets je doit
passer par leur repository respective afin de recupere des objet et et de les passe a mon objet Registration

Décrivez ici votre code ou ce que vous cherchez à faire
la classe registration a 3 clef secondaire et lorsque je veux enregistre je doit avoir des objets et pour recupere les objets je doit
passer par leur repository respective afin de recupere des objet et et de les passe a mon objet Registration

Décrivez ici votre code ou ce que vous cherchez à faire
la classe registration a 3 clef secondaire et lorsque je veux enregistre je doit avoir des objets et pour recupere les objets je doit
passer par leur repository respective afin de recupere des objet et et de les passe a mon objet Registration