SQL-оператор Drupal 8, избегая добавления addOrderBy некоторых полей в SELECT

У меня есть следующая строка в пользовательском плагине сортировки для Views и Drupal 8:

$formula = '(cas.tier IS NULL)';
$this->query->addOrderBy(NULL, $formula, "ASC", "some_alias");

Все, что я хочу, это чтобы Drupal добавил это к существующему запросу:

ORDER BY (cas.tier IS NULL) ASC

Но вместо этого вот что он делает:

SELECT DISTINCT cas.tier AS some_alias
...
ORDER BY some_alias ASC

Таким образом, он добавляет выбор поля в операторе SELECT. В то время как это работает для сортировки, это вводит все виды других проблем в то, что я пытаюсь сделать.

Любая идея, как заставить его просто добавить оператор "ORDER", не связываясь с "SELECT"?

1 ответ

Что ж, получается, что Drupal не может добавить формулу в оператор ORDER BY без добавления поля (по соображениям безопасности: https://www.drupal.org/node/829464)

Если порядок не включает формулу, то $this->query->orderby будет работать без добавления поля в операторе SELECT, но с формулой, нет-нет.

Другие вопросы по тегам