4

私は Bookshelf.js/Knex.js を使用して、モデル (ユーザーと呼びます) と関連する子モデル (会社と呼びます) を取得しています。
子モデルのフィールドで注文できますcompany.nameか?

また、それが可能であれば、company.name降順、lastName昇順などのマルチソートを行うことはできますか

ルート モデル フィールドでのみ動作する現在のコードを次に示します。 qb.orderBy('company.name', 'desc')動作しません。

users.query(function(qb) {
  qb.orderBy('lastName', 'asc');
})
.fetch({withRelated: ['company']})
.then(success, error);
4

3 に答える 3

2

次のことを試してください。

users
.fetch({withRelated: [
     {
         'company': function(qb) {
             qb.orderBy("name");
         }
     }
]})
.then(success, error);

https://github.com/tgriesser/bookshelf/issues/361からアイデアを得ました

于 2014-06-04T16:08:25.927 に答える
1

関数を必要とせずに、次のようにすることができます。

users.query(function(qb) {
  qb.query('orderBy', 'lastName', 'asc');
})
.fetch({withRelated: ['company']})
.then(success, error);

ここにあります: Bookshelf.js の結果を .orderBy() でソートする

于 2015-12-01T16:01:54.880 に答える