2016-05-09 2 views
0

Я пытаюсь построить запрос, используя Doctrine2 QueryBuilder, но это то, что я получаю:Ошибка при запросе в Doctrine2

[Syntax Error] line 0, col 198: Error: Expected end of string, got 'lo' (500 Internal Server Error)

public function FiltrarDatos($localidad_id){ 
    $em = $this->getEntityManager(); 
    $dql = 'SELECT l FROM TarifaBundle:Llamada l'; 
    if ($localidad_id != "") { 
     $dql.=' INNER JOIN l.localidad lo'; 
    } 
    $dql.= ' WHERE'; 
    $bool = false; 
    if ($localidad_id != '') { 
     if ($bool) 
      $dql.=' AND'; 
     $dql.=' lo.id=:localidad_id'; 
     $bool = true; 
     $parameters['localidad_id'] = $localidad_id; 
    } 
    $query = $em->createQuery($dql); 
    $query->setParameters($parameters); 

    return $query->getResult(); 

} 

ответ

0

Есть некоторые проблемы в вашем SQL.

Первое: Параметр функции $id_localidad отличается от этой линии:

if ($localidad_id != '') { 

Во-вторых, вы всегда добавить WHERE без следующего выражения, если параметр функции является пустой/нуль, которая приводит к ошибке SQL. Кроме того, следующие строки не имеют смысла:

if ($bool) 
    $dql.=' AND'; 

$bool всегда будет ложным, так что AND не требуется.

Возможно, какой-то грязный код из-за попытки и ошибки.

 Смежные вопросы

  • Нет связанных вопросов^_^