文档:https://docs.bolt.cm/content-fetching#ordering-results
我正在尝试获取一组记录并根据两个字段对它们进行排序。我创建了以下请求:
{% setcontent records = 'artists' where { gender: 'Male' } orderby 'surname, title ASC' %}
使用bolt.db
作为数据库时可以正常工作,但在MySQL中却没有。我觉得我之前做过类似的事情,所以我想知道它是否与版本有关。此实现使用v1.6.5
。
答案 0 :(得分:0)
我没有测试过这个,但MySQL的常用语法是:
order surname ASC, title ASC
尝试将orderby字符串调整为相同的格式,看看是否能完成这项工作。
答案 1 :(得分:0)
好的,我已经快速解决了这个问题。
我所做的是稍微修改Storage.php
文件。
private function getEscapedSortorder($name, $prefix = 'r')
{
// HACK: multiple sort columns
if (strpos($name, ',') !== FALSE) {
return $name;
}
// END HACK: multiple sort columns
list ($name, $asc) = $this->getSortOrder($name);
...
在我的内容类型中,我现在可以定义sort: surname, title
,它将自动执行ASC
订单,或者我可以执行sort: surname DESC, title ASC
或SQL将允许的任何内容。
可以轻松修改此问题以处理-surname, -title
等。