0
votes

the following code is causing Uncaught exception:

class visual

echo(ProdutoController::listaProdutoVitrineFiltroOrdenadoPeloMenor("TV", "nome", "precodevenda", "ASC"));

class controller

$produtos = daogenerico::findByStringOrderBy("Produto", $tipopesquisa, $nome, $parametro, $ordem);

dao

public static function findByStringOrderBy($classname, $field, $string, $order, $orderparam){
    $bd = new bd();
    $bd->conectar();
    $result = $bd->getEntityManager()->getRepository($classname)->createQueryBuilder('e')
    ->where('e.'.$field.' LIKE :'.$field)
    ->setParameter($field, '%'.$string.'%')
    ->orderBy($order, $orderparam)
    ->getQuery()
    ->getResult();
    return $result;
}

error:

Fatal error: Uncaught exception 'Doctrine\ORM\Query\QueryException' with message 'SELECT e FROM Produto e WHERE e.nome LIKE :nome ORDER BY precodevenda ASC' in C:\xampp\htdocs\TrabalhoA2\vendor\doctrine\orm\lib\Doctrine\ORM\Query\QueryException.php:41 Stack trace: #0 C:\xampp\htdocs\TrabalhoA2\vendor\doctrine\orm\lib\Doctrine\ORM\Query\Parser.php(483): Doctrine\ORM\Query\QueryException::dqlError('SELECT e FROM P...') #1 C:\xampp\htdocs\TrabalhoA2\vendor\doctrine\orm\lib\Doctrine\ORM\Query\Parser.php(708): Doctrine\ORM\Query\Parser->semanticalError(''precodevenda' ...', Array) #2 C:\xampp\htdocs\TrabalhoA2\vendor\doctrine\orm\lib\Doctrine\ORM\Query\Parser.php(283): Doctrine\ORM\Query\Parser->processDeferredResultVariables() #3 C:\xampp\htdocs\TrabalhoA2\vendor\doctrine\orm\lib\Doctrine\ORM\Query\Parser.php(351): Doctrine\ORM\Query\Parser->getAST() #4 C:\xampp\htdocs\TrabalhoA2\vendor\doctrine\orm\lib\Doctrine\ORM\Query.php(281): Doctrine\ORM\Query\Parser->parse() #5 C:\xampp\htdocs\TrabalhoA2\vendor\doctrine\orm\lib\Doctri in C:\xampp\htdocs\TrabalhoA2\vendor\doctrine\orm\lib\Doctrine\ORM\Query\QueryException.php on line 63

Somebody can help?

1

1 Answers

2
votes

Seems like entity alias 'e' is missing in front of order column 'precodevenda'. Try replacing:

->orderBy($order, $orderparam)

with

->orderBy('e.'.$order, $orderparam)