Partage
  • Partager sur Facebook
  • Partager sur Twitter

Too few parameters: the query defines 1 parameters

    17 septembre 2020 à 10:01:53

    Bonjour

    je veux faire un filtre sur une recherche de voiture au moment de réservation ! et j'obtiens cette erreur que je ne comprenne pas

    Too few parameters: the query defines 1 parameters but you only bound 0

    le problème est au niveau de ma query dans carRepo

    voici mon CarRepo

    <?php
    
    namespace App\Repository;
    
    use App\Entity\Car;
    use App\Entity\Booking;
    use App\Form\CarType;
    use Doctrine\ORM\Query;
    use Doctrine\DBAL\Types\Types;
    use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
    use Doctrine\Persistence\ManagerRegistry;
    
    /**
     * @method Car|null find($id, $lockMode = null, $lockVersion = null)
     * @method Car|null findOneBy(array $criteria, array $orderBy = null)
     * @method Car[]    findAll()
     * @method Car[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
     */
    class CarRepository extends ServiceEntityRepository
    {
        public function __construct(ManagerRegistry $registry)
        {
            parent::__construct($registry, Car::class);
        }
    
    
      
        
    
        public function findFilter(Booking $booking)
        {
               $qb = $this->createQueryBuilder('c');
            //    $qb->select('c.id, b.pickDate, b.returnDate, c.brand')
            //     ->join('c.bookings', "b")
            //     ->getQuery()
            //     ->getResult();
            //      return $qb;
               
            if ($booking->getPickDate()) {
                $qb = $qb
                ->select('c.id, b.pickDate, b.returnDate, c.brand')
                ->join('c.bookings',"b")
                ->andWhere('b.pickDate >= ' .date("'Y-m-d H:i:s'"))
                ->setParameter('.date', $booking->getPickDate());            
                      
                 }
            if ($booking->getReturnDate()) {
                $qb = $qb
                 ->andWhere('b.returnDate <= ' .date("'Y-m-d H:i:s'"))
                 ->setParameter('.date', $booking->getReturnDate());
    
            
                }
            if ($booking->getCar()) {
                    $qb = $qb
                ->andWhere('b.car = :car');
                
                
                    }
        
           // dd($qb->getQuery()->getResult());
            return $qb->getQuery();
                     
              
        }
    
        // public function findFilter($form)
        // {
        //     $qb = $this->createQueryBuilder('c');
    
        //     if ($form['brand']) {
        //         $qb->andWhere('c.brand = :brand')
        //             ->setParameter('brand', $form['brand']);
        //     }
    
        //     if ($form['year']) {
        //         $qb->andWhere('c.year = :year')
        //             ->setParameter('year', $form['year']);
        //     }
    
        //     if ($form['price']) {
        //         $qb->andWhere('c.price = :price')
        //             ->setParameter('price', $form['price']);
        //     }
    
        //     if ($form['image']) {
        //         $qb->andWhere('c.image= :image')
        //             ->setParameter('image', $form['image']);
        //     }
    
        //     if ($form['isNew']) {
        //         if ($form['isNew'] === 'yes') {
        //             $qb->andWhere('c.isNew = true');
        //         } else {
        //             $qb->andWhere('c.isNew = false');
        //         }
        //     }
    
        //     return $qb->orderBy('c.id', 'ASC')
        //         ->getQuery()
        //         ->getResult()
        //     ;
        // }
    
        
    
        // /**
        //  * @return Car[] Returns an array of Car objects
        //  */
        /*
        public function findByExampleField($value)
        {
            return $this->createQueryBuilder('c')
                ->andWhere('c.exampleField = :val')
                ->setParameter('val', $value)
                ->orderBy('c.id', 'ASC')
                ->setMaxResults(10)
                ->getQuery()
                ->getResult()
            ;
        }
        */
    
        /*
        public function findOneBySomeField($value): ?Car
        {
            return $this->createQueryBuilder('c')
                ->andWhere('c.exampleField = :val')
                ->setParameter('val', $value)
                ->getQuery()
                ->getOneOrNullResult()
            ;
        }
        */
    }
    
    Mon carController
    <?php
    
    namespace App\Controller;
    
    use App\Entity\Car;
    use App\Entity\Booking;
    use App\Form\CarType;
    use App\Form\BookingType;
    use App\Repository\CarRepository;
    use Knp\Component\Pager\PaginatorInterface;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
    /**
     * @Route("/car")
     */
    class CarController extends AbstractController
    {
        /**
         * @Route("/", name="car_index", methods={"GET","POST"})
         */
        public function index(CarRepository $carRepository, PaginatorInterface $paginatorInterface, Request $request): Response
        {    
            // to use the entity car search in findAllWithPagination function (query treatement)
    
            // car search treatement
            //$carSearch = new CarSearch(); 
            $booking = new Booking();  
            $form = $this->createForm(BookingType:: class,$booking);
            $form->handleRequest($request);
            
    
            $cars = $paginatorInterface->paginate(
                $carRepository->findFilter($booking),
              
                $request->query->getInt('page', 1), /*page number*/
                6 /*limit per page*/
                
            );
           
            // dd($carRepository->findFilter());
          
            return $this->render('car/index.html.twig', [
                'cars' => $cars,
                'form' => $form->createView(),
               
            ]);
        }
    
        /**
         * @Route("/new", name="car_new", methods={"GET","POST"})
         */
        public function new(Request $request): Response
        {
            $car = new Car();
            $form = $this->createForm(CarType::class, $car);
            $form->handleRequest($request);
    
            if ($form->isSubmitted() && $form->isValid()) {
                $entityManager = $this->getDoctrine()->getManager();
                $entityManager->persist($car);
                $entityManager->flush();
    
                return $this->redirectToRoute('car_index');
            }
    
            return $this->render('car/new.html.twig', [
                'car' => $car,
                'form' => $form->createView(),
            ]);
        }
    
        /**
         * @Route("/{id}", name="car_show", methods={"GET"})
         */
        public function show(Car $car): Response
        {
            return $this->render('car/show.html.twig', [
                'car' => $car,
            ]);
        }
    
        /**
         * @Route("/{id}/edit", name="car_edit", methods={"GET","POST"})
         */
        public function edit(Request $request, Car $car): Response
        {
            $form = $this->createForm(CarType::class, $car);
            $form->handleRequest($request);
    
            if ($form->isSubmitted() && $form->isValid()) {
                $this->getDoctrine()->getManager()->flush();
    
                return $this->redirectToRoute('car_index');
            }
    
            return $this->render('car/edit.html.twig', [
                'car' => $car,
                'form' => $form->createView(),
            ]);
        }
    
        /**
         * @Route("/{id}", name="car_delete", methods={"DELETE"})
         */
        public function delete(Request $request, Car $car): Response
        {
            if ($this->isCsrfTokenValid('delete'.$car->getId(), $request->request->get('_token'))) {
                $entityManager = $this->getDoctrine()->getManager();
                $entityManager->remove($car);
                $entityManager->flush();
            }
    
            return $this->redirectToRoute('car_index');
        }
    }
    
     

    Merci de m'aider à résoudre ce problème qui m’empêche d'avancer

    -
    Edité par LoubnaBarkat 17 septembre 2020 à 10:25:57

    • Partager sur Facebook
    • Partager sur Twitter
      17 septembre 2020 à 10:13:52

      Salut

      Actuellement, avec ce genre de code dans ton repository :

      1. aux lignes 46-47 et 52-53, tu ne définis pas de paramètre, tu concatènes la date du jour dans la requête ;
      2. à l'inverse ligne 59, tu définis un paramètre qu'effectivement tu ne lies pas.

      -
      Edité par Ymox 17 septembre 2020 à 10:14:10

      • Partager sur Facebook
      • Partager sur Twitter
      OC à changerFAQ PHP • Et avant celaTutoriel WAMP • Code illisible ? Un p'tit 👍 ici@Zeste de Savoir
        17 septembre 2020 à 10:21:25

        que je dois faire dans ce cas stp? je ne vois pas comment faire pour corriger cette erreur!

        merci

        • Partager sur Facebook
        • Partager sur Twitter
          17 septembre 2020 à 10:30:32

          Au lieu de concaténer la date dans la requête aux lignes 46 et 52, tu places un marqueur, et ligne 60 tu lies un paramètre comme tu as tenté de le faire aux lignes 47 et 53, mais pour le paramètre de la ligne 59.

          • Partager sur Facebook
          • Partager sur Twitter
          OC à changerFAQ PHP • Et avant celaTutoriel WAMP • Code illisible ? Un p'tit 👍 ici@Zeste de Savoir
            17 septembre 2020 à 10:33:39

            j'ai modifer le code le nombre de lignes dont tu parles n'est plus le même! peux tu revoir ça stp? Merci
            • Partager sur Facebook
            • Partager sur Twitter
              17 septembre 2020 à 10:36:27

              Tu n'aurais pas dû mettre de nouveau code dans le premier message, mais le fournir dans ta réponse et laisser celui dont on a discuté comme il était. Tout ce que je t'ai dit avec les numéros de ligne est désormais incohérent, quelqu'un qui vient suivre le sujet ne peut plus le faire correctement.

              Remets le code initial dans le premier message et copie le code actuel dans une nouvelle réponse.

              Ou alors tu adaptes par toi-même les numéros de ligne que j'avais donné à ton nouveau code.

              -
              Edité par Ymox 17 septembre 2020 à 10:38:05

              • Partager sur Facebook
              • Partager sur Twitter
              OC à changerFAQ PHP • Et avant celaTutoriel WAMP • Code illisible ? Un p'tit 👍 ici@Zeste de Savoir
                17 septembre 2020 à 10:52:45

                j'ai pas changer de code , j'ai juste supprimé les espaces inutile c'est le meme code!
                • Partager sur Facebook
                • Partager sur Twitter
                  17 septembre 2020 à 11:20:52

                  Bonjour,

                  Je crois que nous avons discuté déjà dans un autre post sur ton sujet ?

                  Comme dit par Ymox, tu as plusieurs problèmes à corriger et le message d'erreur doit venir de  :

                  if ($booking->getCar()) {
                                  $qb = $qb
                              ->andWhere('b.car = :car');
                               
                               
                                  }

                  Cela vaut quoi :car ????

                  Il me semblait que dans ton formulaire de sélection c'était la marque un de tes critères et non la voiture ?

                  La voiture ou les voitures c'est le résultat du query builder.

                  A+

                  -
                  Edité par monkey3d 17 septembre 2020 à 11:22:04

                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 septembre 2020 à 11:32:30

                    LoubnaBarkat a écrit:

                    c'est le meme code!

                    Oui pour ses fonctionnalités (et je n'ai pas vérifié), non pour le fait que justement tu as bien fait des modifications, vu que les numéros de ligne que j'avais donnés dans mon premier message ne correspondent plus à ce nouveau code.

                    Donc reprends mon message précédent et, vu qu'il faut pré-mâcher en deux fois, ça fait :

                    • 43-44 au lieu de 46-47 ;
                    • 49-50 au lieu de 52-53 ;
                    • 56 au lieu de 59 ;
                    • 57 au lieu de 60.

                    Si ce genre de truc venait à se reproduire, je passerai mon chemin. J'hésite à le faire déjà maintenant, d'ailleurs.

                    Note au passage : c'était OK pour les deux premiers points dans le précédent sujet.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    OC à changerFAQ PHP • Et avant celaTutoriel WAMP • Code illisible ? Un p'tit 👍 ici@Zeste de Savoir
                      17 septembre 2020 à 13:51:05

                      Merci pour vos réponse , Merci pour l'effort ymox, j'ai supprimé des espaces pour que le code soit plus lisible!  j'ai fait ce que tu m'a dit dans ton message précédent, mais le filtre ne fonctionne toujours pas! j'ai pergé ma bdd et j'ai entrée 4 voitures pour tester , par contre quand j'entre les dates et la marque dans le formulaire et je clique sur rechercher il m'affiche rien cette fois ci , il me fait que enregistrer la voiture avec tout les info que j'ai entré dans le formulaire. je pense que je me trempe c'est pas comme ça qu'il faut faire!

                      Et quand je cherche cette même voiture avec les dates choisis  et qui existe bien dans ma bdd , il m'affiche aucune voiture!

                      voici mon car Repo

                      <?php
                      
                      namespace App\Repository;
                      
                      use App\Entity\Car;
                      use App\Entity\Booking;
                      use Doctrine\ORM\Query;
                      use Doctrine\DBAL\Types\Types;
                      use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
                      use Doctrine\Persistence\ManagerRegistry;
                      
                      /**
                       * @method Car|null find($id, $lockMode = null, $lockVersion = null)
                       * @method Car|null findOneBy(array $criteria, array $orderBy = null)
                       * @method Car[]    findAll()
                       * @method Car[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
                       */
                      class CarRepository extends ServiceEntityRepository
                      {
                          public function __construct(ManagerRegistry $registry)
                          {
                              parent::__construct($registry, Car::class);
                          }
                      
                      
                        
                          
                      
                          public function findFilter(Booking $booking)
                          {
                                 $qb = $this->createQueryBuilder('c');
                              //    $qb->select('c.id, b.pickDate, b.returnDate, c.brand')
                              //     ->join('c.bookings', "b")
                              //     ->getQuery()
                              //     ->getResult();
                              //      return $qb;
                             
                              if ($booking->getPickDate()) {
                                  $qb = $qb
                                  ->select('c.id, c.image, c.brand, c.year, c.seats, c.transmission, c.price, b.pickDate, b.returnDate')
                                  ->join('c.bookings',"b")
                                  ->andWhere('b.pickDate >= :date')
                                  ->setParameter('date', $booking->getPickDate());            
                                        
                                   }
                              if ($booking->getReturnDate()) {
                                  $qb = $qb
                                   ->andWhere('b.returnDate <= :date')
                                   ->setParameter('date', $booking->getReturnDate());
                      
                              
                                  }
                              if ($booking->getCar()) {
                                      $qb = $qb
                                  ->andWhere('b.car = :car')
                                  ->setParameter('car', $booking->getCar());
                      
                                  
                                      }
                          
                             // dd($qb->getQuery()->getResult());
                              return $qb->getQuery();
                                       
                                
                          }
                      
                      
                          // /**
                          //  * @return Car[] Returns an array of Car objects
                          //  */
                          /*
                          public function findByExampleField($value)
                          {
                              return $this->createQueryBuilder('c')
                                  ->andWhere('c.exampleField = :val')
                                  ->setParameter('val', $value)
                                  ->orderBy('c.id', 'ASC')
                                  ->setMaxResults(10)
                                  ->getQuery()
                                  ->getResult()
                              ;
                          }
                          */
                      
                          /*
                          public function findOneBySomeField($value): ?Car
                          {
                              return $this->createQueryBuilder('c')
                                  ->andWhere('c.exampleField = :val')
                                  ->setParameter('val', $value)
                                  ->getQuery()
                                  ->getOneOrNullResult()
                              ;
                          }
                          */
                      }
                      

                      Pour répondre à monkey , "car" est une relation entre l'entité Booking et l'entité Car.Je fais le query sur les propriétés de l'entité booking puisque je veux filtrer des voiture à partir d'un formulaire de réservation

                      -
                      Edité par LoubnaBarkat 17 septembre 2020 à 14:07:24

                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 septembre 2020 à 13:58:24

                        Dans ton post https://openclassrooms.com/forum/sujet/question-sursoumission-de-formulaire-sous-symfony5

                        tu as pour critère la marque donc pour moi c'est la propriété brand de ton entité CarSearch et non car :

                        /**
                             * @ORM\Column(type="string", length=255)
                             */
                            private $pickLocation;
                         
                            /**
                             * @ORM\Column(type="date")
                             */
                            private $pickDate;
                         
                            /**
                             * @ORM\Column(type="date")
                             */
                            private $returnDate;
                         
                            /**
                             * @ORM\Column(type="string", length=255)
                             */
                            private $brand;

                        A+

                        -
                        Edité par monkey3d 17 septembre 2020 à 13:59:45

                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 septembre 2020 à 15:40:14

                          j'ai supprimé l'entité carSearch et j'ai fait le traitement directement sur l'entité booking car je me suis trouver tourner dans le vide.. les deux entités ont les mêmes propriétés donc j'ai gardé booking !donc dans booking il y'a bien une relation car ! brand est une pripriété dans l'entité car 

                          Je partage les deux entités pour mieux comprendre ce que je dis

                          Booking

                          <?php
                          
                          namespace App\Entity;
                          use App\Repository\BookingRepository;
                          use Doctrine\ORM\Mapping as ORM;
                          
                          
                          /**
                           * @ORM\Entity(repositoryClass=BookingRepository::class)
                           */
                          class Booking
                          {
                              /**
                               * @ORM\Id
                               * @ORM\GeneratedValue
                               * @ORM\Column(type="integer")
                               */
                              private $id;
                          
                              /**
                               * @ORM\Column(type="string", length=150)
                               */
                              private $pickLocation;
                          
                              /**
                               * @ORM\Column(type="datetime")
                               */
                              private $pickDate;
                          
                              /**
                               * @ORM\Column(type="datetime")
                             
                               */
                              private $returnDate;
                          
                              /**
                               * @ORM\ManyToOne(targetEntity=Car::class, inversedBy="bookings")
                               * @ORM\JoinColumn(nullable=false)
                               */
                              private $car;
                          
                              /**
                               * @ORM\ManyToOne(targetEntity=User::class, inversedBy="booking")
                               * @ORM\JoinColumn(nullable=false)
                               */
                              private $user;
                          
                              public function getId(): ?int
                              {
                                  return $this->id;
                              }
                          
                              public function getPickLocation(): ?string
                              {
                                  return $this->pickLocation;
                              }
                          
                              public function setPickLocation(string $pickLocation): self
                              {
                                  $this->pickLocation = $pickLocation;
                          
                                  return $this;
                              }
                          
                              public function getPickDate(): ?\DateTimeInterface
                              {
                                  return $this->pickDate;
                              }
                          
                              public function setPickDate(\DateTimeInterface $pickDate): self
                              {
                                  $this->pickDate = $pickDate;
                          
                                  return $this;
                              }
                          
                              public function getReturnDate(): ?\DateTimeInterface
                              {
                                  return $this->returnDate;
                              }
                          
                              public function setReturnDate(\DateTimeInterface $returnDate): self
                              {
                                  $this->returnDate = $returnDate;
                          
                                  return $this;
                              }
                          
                              public function getCar(): ?Car
                              {
                                  return $this->car;
                              }
                          
                              public function setCar(?Car $car): self
                              {
                                  $this->car = $car;
                          
                                  return $this;
                              }
                              public function getUser(): ?User
                              {
                                  return $this->user;
                              }
                          
                              public function setUser(?User $user): self
                              {
                                  $this->user = $user;
                          
                                  return $this;
                              }
                              public function __toString(): ?string
                              {
                                  return $this->car;
                              }
                          
                          }
                          
                          Car
                          <?php
                          
                          namespace App\Entity;
                          
                          use App\Repository\CarRepository;
                          use Doctrine\Common\Collections\ArrayCollection;
                          use Doctrine\Common\Collections\Collection;
                          use Doctrine\ORM\Mapping as ORM;
                          use Symfony\Component\HttpFoundation\File\File;
                          use Vich\UploaderBundle\Mapping\Annotation as Vich;
                          
                          /**
                           * @ORM\Entity
                           * @Vich\Uploadable
                           * @ORM\Entity(repositoryClass=CarRepository::class)
                           */
                          class Car
                          {
                              /**
                               * @ORM\Id
                               * @ORM\GeneratedValue
                               * @ORM\Column(type="integer")
                               */
                              private $id;
                          
                              /**
                               * @ORM\Column(type="string", length=100)
                               */
                              private $brand;
                          
                              /**
                               * @ORM\Column(type="integer")
                               */
                              private $year;
                          
                              /**
                               * @ORM\Column(type="integer")
                               */
                              private $price;
                          
                              /**
                               * @ORM\Column(type="string", length=100)
                               */
                              private $image;
                              /**
                               * @Vich\UploadableField(mapping="car_images", fileNameProperty="image")
                               * @var File
                               */
                              private $imageFile;
                          
                              /**
                               * @ORM\Column(type="boolean")
                               */
                              private $isNew;
                          
                              /**
                               * @ORM\OneToMany(targetEntity=Booking::class, mappedBy="car",orphanRemoval=true)
                               */
                              private $bookings;
                          
                              /**
                               * @ORM\ManyToOne(targetEntity=Model::class, inversedBy="cars")
                               */
                              private $model;
                          
                              /**
                               * @ORM\Column(type="integer")
                               */
                              private $seats;
                          
                              /**
                               * @ORM\Column(type="string", length=100)
                               */
                              private $transmission;
                          
                              public function __construct()
                              {
                                  $this->bookings = new ArrayCollection();
                              }
                          
                              public function getId(): ?int
                              {
                                  return $this->id;
                              }
                          
                              public function getBrand(): ?string
                              {
                                  return $this->brand;
                              }
                          
                              public function setBrand(string $brand): self
                              {
                                  $this->brand = $brand;
                          
                                  return $this;
                              }
                          
                              public function getYear(): ?int
                              {
                                  return $this->year;
                              }
                          
                              public function setYear(int $year): self
                              {
                                  $this->year = $year;
                          
                                  return $this;
                              }
                          
                              public function getPrice(): ?int
                              {
                                  return $this->price;
                              }
                          
                              public function setPrice(int $price): self
                              {
                                  $this->price = $price;
                          
                                  return $this;
                              }
                          
                              public function getImage(): ?string
                              {
                                  return $this->image;
                              }
                          
                              public function setImage(string $image): self
                              {
                                  $this->image = $image;
                          
                                  return $this;
                              }
                          
                              public function setImageFile(File $image = null)
                              {
                                  return $this->imageFile = $image;
                              }
                          
                              public function getImageFile()
                              {
                                  return $this->imageFile;
                              }
                          
                              public function getIsNew(): ?bool
                              {
                                  return $this->isNew;
                              }
                          
                              public function setIsNew(bool $isNew): self
                              {
                                  $this->isNew = $isNew;
                          
                                  return $this;
                              }
                          
                              /**
                               * @return Collection|Booking[]
                               */
                              public function getBookings(): Collection
                              {
                                  return $this->bookings;
                              }
                          
                              public function addBooking(Booking $booking): self
                              {
                                  if (!$this->bookings->contains($booking)) {
                                      $this->bookings[] = $booking;
                                      $booking->setCar($this);
                                  }
                          
                                  return $this;
                              }
                          
                              public function removeBooking(Booking $booking): self
                              {
                                  if ($this->bookings->contains($booking)) {
                                      $this->bookings->removeElement($booking);
                                      // set the owning side to null (unless already changed)
                                      if ($booking->getCar() === $this) {
                                          $booking->setCar(null);
                                      }
                                  }
                          
                                  return $this;
                              }
                          
                              public function getModel(): ?Model
                              {
                                  return $this->model;
                              }
                          
                              public function setModel(?Model $model): self
                              {
                                  $this->model = $model;
                          
                                  return $this;
                              }
                              public function __toString(){
                                  return $this->brand;
                              }
                          
                              public function getSeats(): ?int
                              {
                                  return $this->seats;
                              }
                          
                              public function setSeats(int $seats): self
                              {
                                  $this->seats = $seats;
                          
                                  return $this;
                              }
                          
                              public function getTransmission(): ?string
                              {
                                  return $this->transmission;
                              }
                          
                              public function setTransmission(string $transmission): self
                              {
                                  $this->transmission = $transmission;
                          
                                  return $this;
                              }
                          }
                          
                           



                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 septembre 2020 à 17:42:58

                            Alors d'abord quand on fait un formulaire de recherche il n'est pas obligatoire de mapper sur une entité.

                            Tu peux avoir des champs non mappés puis à la validation du formulaire tu récupères les données saisies et là tu fais ton traitement

                            A nouveau le code :

                            if ($booking->getCar()) {
                                            $qb = $qb
                                        ->andWhere('b.car = :car')
                                        ->setParameter('car', $booking->getCar());
                             
                                         
                                            }

                            ne veut rien dire pour moi puisque tu recherches sur la marque donc ce n'est pas l'objet car que tu as en condition mais la propriété brand ... et justement tu cherches les voitures (car) qui correspondent. Donc c'est getCar()->getBrand()

                            A+

                            • Partager sur Facebook
                            • Partager sur Twitter
                              17 septembre 2020 à 22:52:10

                              bonsoir monkey

                              Juste pour t'expliquer ce que je veux faire..  je me trempe peut être excuse ma logique primitive ..mais voila 

                              oui je recherche sur la marque mais depuis le formulaire qui est dans l'entité booking! j'arrive pas a accéder a la propriety brand de l'entité car dans la query sur les propriétés d'une autre entité! donc j'ai utilisé le lien entre les deux entités qui est la propriété car dans l'entité booking

                              nb: j'ai essayé de mettre brand a la place de car mais il m'affiche une erreur. c'est normal puisque j'essaie d'appelé cette propriété depuis le query de booking ce derneir ne contient pas cette propriété

                              j'ai fait un autre filtre sur les prix mais aucun filtre fonctionne!!semaine de galére avec ces filtres!

                              • Partager sur Facebook
                              • Partager sur Twitter
                                18 septembre 2020 à 8:12:36

                                Mais bien-sûr que cela ne peut marcher puisque tu essaies de getter sur un objet que justement tu cherches à déterminer ...mon propos était jsute de dire que tu ne peux faire un getCar() alors que tu cherches le brand d'une voiture.

                                Je t'ai donné la solution que je mettrai en oeuvre :

                                - un formulaire de recherche sur tes 4 critères avec tes champs non mappés sur une entité,

                                - quand le formulaire est validé tu récupères les données saisies,

                                - tu fais alors ta requête et tu présentes le résultat.

                                - quand le client valide son choix parmi les résultats c'est là que tu hydrates booking.

                                Cela me simple à la fois logique et relativement simple à mettre en oeuvre

                                A+

                                -
                                Edité par monkey3d 18 septembre 2020 à 8:13:21

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Too few parameters: the query defines 1 parameters

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                • Editeur
                                • Markdown