2016-03-07 107 views
0

下面的代碼是使未捕獲的例外:學說爲了通過使未捕獲的例外

類視覺

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

類控制器

$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; 
} 

錯誤:

致命錯誤:在C:\ xampp \ htdocs \ TrabalhoA2 \ vendor \中有消息'SELECT e FROM Produto e WHERE e.nome LIKE:nome ORDER BY precodevenda ASC'的未捕獲異常'Doctrine \ ORM \ Query \ QueryException' doctrine \ orm \ lib \ Doctrine \ ORM \ Query \ QueryException.php:41堆棧跟蹤:#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在C:\ xampp \ htdocs \ TrabalhoA2 \ vendor \ doctrine \ orm \ lib \ Doctrine \ ORM \ Query \ QueryException.php on line 63

有人可以幫忙嗎?

回答

2

看起來像實體別名'e'在訂單列'precodevenda'之前缺少。 嘗試更換:

->orderBy($order, $orderparam) 

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

它的作品!非常感謝你! –