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, но с формулой, нет-нет.