用教义订购联接表

时间:2020-09-28 11:56:30

标签: php mysql symfony doctrine-orm doctrine

我用学说写了一个查询,其中我加入了水果和维生素表。

我已经按维生素ASC的名称对维生素进行了分类,但是我需要对联接表做同样的事情。

我尝试过

addOrderBy()

,但是没有运气。

注意:“ c” 是维生素表。

除了水果无顺序返回外,一切都应返回。

我的代码:

 $queryBuilder =  $this->createQueryBuilder('c')
        ->select('c', 'ct.name AS fruitName', 'ct.id AS fruitId')
        ->join('App\Entity\Fruits', 'ct', Expr\Join::WITH, 'ct.id = c.fruitName')
        ->orderBy('c.name');

    $fruits = $queryBuilder->getQuery()->getResult();
    $structure = [];
    foreach ($fruits as $fruit) {
        $structure[$fruit['fruitName']][] = $fruit[0];
    }
    return $structure;

1 个答案:

答案 0 :(得分:0)

尝试以下方法之一:

选项1:

$qb->orderBy('c.name ASC, ct.name ASC');

选项2:

$qb->addOrderBy('c.name', 'ASC')
   ->addOrderBy('ct.name', 'ASC')