Strapi 深度排序

Strapi deep sort

假设我 modelAmodelB 上有一个外键。

api/modelA/services/modelA.js中,我可以定义:

// [...]
module.exports = {
  /**
   * Promise to fetch all records
   *
   * @return {Promise}
   */
  find (params, populate) {
    params = {
      ...params,

      _sort: 'field_from_model_a:DESC,other_field_model_a:ASC'
    }
    populate = [
      'modelB'
    ]
    return strapi.query('post').find(params, populate)
  },
// [...]

这让我可以对我的查询进行排序,我还可以在使用

过滤深度关系

curl -X GET "http://localhost:1337/modelA?modelB.field_from_model_b=example_value

但我找不到如何在 modelB.some_field 上排序。

如果我写 _sort: 'modelB.field_model_b:ASC',我会收到一条错误消息:缺少 table“modelB”

的 FROM 子句条目

从 Strapi v3.4.2 开始可以使用深度排序看看 Strapi release v3.4.2

确实,自 Strapi release v3.4.2 以来,您似乎可以对查询进行深度排序。耶!

您可以在 strapi 项目的测试 here 中找到示例。

这是语法(正如我最初的问题所预期的那样):

{
  // ...
  _sort: 'modelB.field_model_b:ASC'
}