Hier ist ein Bild von der Seite auf der linken Seite Ich habe ein Formular, wenn ich die gesuchten Fahrzeuge auf der rechten Seite mit den vom Benutzer eingegebenen Informationen anzeigen möchte, wenn der Benutzer nicht geht erforderlich, um die Form zeigt die Seite alle Autos .in beiden Fällen sollte der Nutzer nur Fahrzeuge sieht, wo der Preis nicht 0symfony2 Suchformular QueryBuilder mit Parametern
das ist meine Form in Fall ist, aber ich habe kein Problem, hier VoitureType3.php:
$builder
->add('marque', EntityType::class,array(
'class' => 'SpoiledCarFrontOfficeBundle:Marque',
'required' => true,
'empty_value' => '== Choisissez une Marque ==',
))
->add('modele', DependentFormsType::class,array(
'entity_alias' => 'modele_by_marque',
'parent_field' => 'marque',
'empty_value' => '== Choisissez un Modele =='
))
->add('chevaux', 'choice', array('choices' => array('4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '11' => '11', '12' => '12', '13' => '13', '14' => '14', '15' => '15', '16' => '16'),'expanded' => false, 'required' => true,
'multiple' => false, 'label' => 'Nombre de Chevaux'))
->add('boitevitesse', 'choice', array('choices' => array('Automatique' => 'Automatique', 'Manuelle' => 'Manuelle', 'Sequentielle' => 'Sequentielle'),'expanded' => false, 'required' => true,
'multiple' => false, 'label' => 'Boite de Vitesse'))
hier ist mein Controller:
$filterForm = $this->createForm('SpoiledCar\FrontOfficeBundle\Form\VoitureType3');
$em = $this->getDoctrine()->getManager();
$voiturefind = $em->getRepository('SpoiledCarFrontOfficeBundle:Voiture')->myFindAll($filterForm);
$voitures = $this->get('knp_paginator')->paginate($voiturefind,$this->get('request')->query->get('page', 1),6);
// Bind values from the request
$filterForm->handleRequest($request);
if ($filterForm->isSubmitted() && $filterForm->isValid()) {
return $this->render('FOSUserBundle:Profile:listTable.html.twig', array(
'voitures' => $voitures,
));
}
return $this->render('FOSUserBundle:Profile:listTable.html.twig', array(
'voitures' => $voitures,
'filterForm' => $filterForm->createView(),
));
ich erhalte diese Störung:
Attempted to call an undefined method named "andWhere" of class "Doctrine\ORM\Query".
und das ist mein Querybuilder Ich denke, das Problem von hier kommen, aber ich weiß nicht, was ich falsch mache genau
public function myFindAll(FormInterface $filterForm)
{
$qb = $this->createQueryBuilder('p')
->Where('p.prix IS NOT NULL')
->getQuery();
if ($filterForm->has('marque')) {
$qb->andWhere($qb->expr()->like('u.marque', ':marque'))
->setParameter('marque', '%'. $filterForm->get('marque')->getData().'%');
}
if ($filterForm->has('modele')) {
$qb->andWhere($qb->expr()->like('u.modele', ':modele'))
->setParameter('modele', '%'. $filterForm->get('modele')->getData().'%');
}
if ($filterForm->has('boitevitesse')) {
$qb->andWhere($qb->expr()->like('u.boitevitesse', ':boitevitesse'))
->setParameter('boitevitesse', '%'. $filterForm->get('boitevitesse')- >getData().'%');
}
if ($filterForm->has('chevaux')) {
$qb->andWhere($qb->expr()->like('u.chevaux', ':chevaux'))
->setParameter('chevaux', '%'. $filterForm->get('chevaux')->getData().'%');
}
return $qb->getResult();
}
okay, ich bin einen anderen Fehler ps bekommen: marque und modelte sind andere Tabellen, die von Fremdschlüssel-Tabelle voiture [Semantische Fehler] Zeile 0, Spalte 91 in der Nähe von ‚marque verbunden LIKE: marque ': Fehler: Ungültiger PathExpression. Muss eine StateFieldPathExpression sein. – user3010971
'wie ('u.marque', ': marque')' <- warum 'du'? Wo findest du es? – scoolnico
ich reparierte, dass ich vergesse, dass ich sie zu p änderte, aber nom ich bekomme diesen Fehler, wenn ich marque entferne und modelliere es funktioniert !! – user3010971