2016-09-06 1 views
1

Ich habe ein Suchformular erstellt, ich versuche, die folgenden Daten aus der Datenbank zu holen (airport, airport1, departuredate, price), kann ich nur bekommen [airport] aber nicht die andere Entität.Mehr Kriterien suchen Abfrage-Generator [Symfony2]

Das ist mein Controller:

public function searchtabflightResultAction(Request $request) 
{ 


    $form = $this->createForm(new SearchflightType()); 

    if ($this->get('request')->getMethod() == 'POST') 
    { 
     $form->handleRequest($request); 

    $em = $this->getDoctrine()->getManager(); 
    $entities = $em->getRepository('FLYBookingsBundle:Post')->searchflight($form['airport']->getData()); 

    } else { 
     throw $this->createNotFoundException('The page you were looking for doesn\'t exist.'); 
    } 

    return $this->render('FLYBookingsBundle:Post:searchtabflightResult.html.twig', array('entities' => $entities)); 
} 

PostRepository.php

public function searchflight($entity) 
    { 
     $qb = $this->createQueryBuilder('u') 
      ->select('u') 
      ->where('u.airport like :entity') 
      ->andWhere('u.airport1 like :entity') 
      ->orderBy('u.id') 
      ->setParameter('entity', '%'.$entity.'%'); 
     return $qb->getQuery()->getResult(); 
    } 

Antwort

1

Versuchen Sie so etwas wie:

In Ihrem Controller:

$entities = $em->getRepository('FLYBookingsBundle:Post')->searchflight($form); 

In Ihrem Repo:

public function searchflight(FormInterface $form) 
{ 
    $qb = $this->createQueryBuilder('u'); 

    if ($form->has('airport')) { 
     $qb->andWhere(
      $qb->expr()->like('u.airport', ':airport') 
     ) 
      ->setParameter('airport', '%'. $form->get('airport')->getData().'%') 
    } 

    // ... complete like this with the other params 
+0

Vielen Dank für Ihre Antwort. Ich habe versucht, mit Ihrer Abfrage, es funktioniert gut mit Preis-Einheit, aber wenn ich nach Flughafen suche, findet es kein Ergebnis, ich denke, weil zu streng ist. Mit meinem Query Builder habe ich es so gemacht "% '. $ Entity.'% ''. Wie kann ich es schaffen, nicht streng zu sein? – Sirius

Verwandte Themen