ApiPlatform - 如何在 OrderFilter 中添加“CASE WHEN product.name IS NULL THEN 1 ELSE 0 END”?

问题描述

有没有办法创建自定义 OrderFilter添加querybuilder->orderBy() "CASE WHEN"?

解决方法

您只需要将其添加到 addSelect() 中,就像:

->addSelect('case when product.name IS NULL then 1 else 0 end AS HIDDEN name_is_null')
            ->addOrderBy('name_is_null','ASC')

...as HIDDEN... 用于告诉学说不要在数据结果中添加以下 name_is_full 列。