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

ApiPlatform - how to add "CASE WHEN product.name IS NULL THEN 1 ELSE 0 END" in OrderFilter?

有什么方法可以创建自定义 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... 用于告诉 doctrine 不要在数据结果中添加下面的 name_is_full 列。