Normalmente se esegue una query DQL come di seguito sarebbe restituirà un elenco di un'entità oggetti:DQL restituendo una serie di soggetti, invece di oggetti
$d = $this->getDoctrine()->getRepository('xxxWebsiteBundle:Locations')->createQueryBuilder('l');
->where('l.enabled = :enabled')
->setParameter('enabled', 1)
$result= $d
->getQuery();
Tuttavia, se si aggiunge un prescelto allora restituisce un array :
$d = $this->getDoctrine()->getRepository('XXXWebsiteBundle:Locations')->createQueryBuilder('l');
$d
->select('l')
->addSelect(
'(3959 * acos(cos(radians(' . $latitude . '))' .
'* cos(radians(l.latitude))' .
'* cos(radians(l.longitude)' .
'- radians(' . $longitude . '))' .
'+ sin(radians(' . $latitude . '))' .
'* sin(radians(l.latitude)))) as distance'
)
->where('l.enabled = :enabled')
->setParameter('enabled', 1)
->having('distance < :distance')
->setParameter('distance', $requestedDistance)
->orderBy('distance', 'ASC');
$closeresult= $d
->getQuery();
Quindi, utilizzando la prima query ho potuto effettuare le seguenti operazioni:
foreach($result->getResult() as $location){
echo $location->getName()
}
Tuttavia, utilizzando la seconda q Voglio usare il seguente che presumo non è corretto:
foreach($result->getResult() as $location){
echo $location[0]->getName()
}
Qualche idea su come posso migliorare questo?
Impressionante! Grazie – user1961082