Ich stieß auf ein Problem mit meinen DQL-Anfragen, wie der Titel vermuten lässt.Syntax Fehler Zeile 0, Spalte 349: Fehler: Erwartetes Literal, bekam 'aS'
Hier sind meine ersten Zeilen, die den Kern des Fehlers zu sein scheinen nicht:
$qb = $this
->createQueryBuilder('p')
->leftJoin('p.localisation', 'loc')
->leftJoin('p.advert', 'a')
->leftJoin('a.accommodationStyle', 'aS')
->leftJoin('a.accommodationChoice', 'aC')
->where('loc.lat < :maxLat')
->setParameter('maxLat', $maxLat)
->andWhere('loc.lat > :minLat')
->setParameter('minLat', $minLat)
->andWhere('loc.lng < :maxLng')
->setParameter('maxLng', $maxLng)
->andWhere('loc.lng > :minLng')
->setParameter('minLng', $minLng)
;
Das Problem ist hier:
$orX = $qb->expr()->orX();
$orX->add('aS.name = :house')
->add('aS.name = :flat')
->add('aS.name = :villa')
->add('aS.name = :bungalow')
;
$qb->andWhere($orX)
->setParameters(
array(
'house' => 'House',
'flat' => 'Flat',
'villa' => 'Villa',
'bungalow' => 'Bungalow'
)
)
;
biete ich Fetzen meiner Entitäten:
Anzeige enthält die folgenden Zeilen:
/**
* @ORM\ManyToOne(targetEntity="MR\PlatformBundle\Entity\AccommodationChoice", inversedBy="adverts", cascade={"persist","remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $accommodationChoice;
/**
* @ORM\ManyToOne(targetEntity="MR\PlatformBundle\Entity\AccommodationStyle", inversedBy="adverts", cascade={"persist","remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $accommodationStyle;
AccommodationStyle, dieses:
/**
* @ORM\OneToMany(targetEntity="MR\PlatformBundle\Entity\Advert", mappedBy="accommodationStyle")
*/
private $adverts;
AccommodationChoice, dieses:
/**
* @ORM\OneToMany(targetEntity="MR\PlatformBundle\Entity\Advert", mappedBy="accommodationChoice")
*/
private $adverts;
und Person, das andere:
/**
* @ORM\OneToOne(targetEntity="MR\PlatformBundle\Entity\Advert", inversedBy="author", cascade={"persist","remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $advert;
ich die vorhandenen Beiträge zu diesem Thema untersucht, aber niemand schien für diesen Fall zu helfen, danke im Voraus für einige Hilfe (würde sehr geschätzt werden)!
Ich korrigierte Villa in: Villa, aber das war nur ein Fehler während meines Schreibens dieser Post –