0

ORDER BYDoctrine 2 ORM を使用して DQL の句で動的ソートを実行しようとすると、エラーが発生します。

ここに私のコードスニペットがあります:

$queryBuilder = $categoryEntity->createQueryBuilder('category');

$queryBuilder->distinct();
$queryBuilder->join('Category\Entity\CategoryName', 'category_name', 'WITH', 'category.id = category_name.category');


if($column == 'status'){
    $queryBuilder->orderBy("category.status $order");
}else{
    $queryBuilder->orderBy("category_name.name $order");
}

これにより、次のエラーが発生します。

[構文エラー] 0 行目、189 列目: エラー: 文字列の終わりが予想されますが、'ASC' を取得しました

4

1 に答える 1

6

正しい API はDoctrine\ORM\QueryBuilder#orderBy($field, $direction)次のとおりです。

// assuming $order is either 'ASC' or 'DESC'

if($column == 'status'){
      $queryBuilder->orderBy('category.status', $order);
}else{
     $queryBuilder->orderBy('category_name.name', $order);
}
于 2013-02-25T16:53:58.930 に答える