Доктрина подзапроса Не удалось найти класс - PullRequest
2 голосов
/ 04 мая 2010

Я пытаюсь создать запрос, подобный этому:

$q = Doctrine_Query::create()
        ->select('p.nombre')
        ->addSelect('(select count(*) from alojamiento a left join                      
                localidad l on a.localidad_id=l.id where p.id=l.provincia_id and        
                a.activo=true)')
        ->from('provincia p');

, но это не удается: ошибка 500, не удалось найти класс a.

А:

$q = Doctrine_Query::create()
        ->select('nombre')
        ->addSelect('(select count(*) from alojamiento left join localidad on   
                alojamiento.localidad_id=localidad.id where                                     
                provincia.id=localidad.provincia_id and alojamiento.activo=true)')
        ->from('provincia');

приводит к: SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец 'a.localidad_id' в 'предложении'.

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 02 октября 2010

Если у вас настроены отношения alojamiento.localidad в ваших моделях доктрин, вы можете попробовать это:

$q = Doctrine_Query::create()
             ->select('p.nombre')
             ->addSelect('(select count(*) from Alojamiento a 
                          left join a.Localidad l
                          where Provincia.id = Localidad.provincia_id 
                          and l.activo=true) as count')
             ->from('Provincia p');
...