1

我想要的是根据Laravel 所做Service的关系(属于相同的)对所有模型结果进行排序,如下所示:ServiceCategory

const services = await Service
  .query()
  .orderBy('categories.id', 'desc')
  .fetch()

问题是 Lucid 不理解它并给出以下错误:

services从order by中选择 * categoriesidasc - ER_BAD_FIELD_ERROR:“订单子句”中的未知列“categories.id”

这是服务模型:

const Model = use('Model')

class Service extends Model {
  categories() {
    return this
      .belongsToMany('App/Models/ServiceCategory')
      .withTimestamps()
  }
}

module.exports = Service

这是 ServiceCategory 模型:

const Model = use('Model')

class ServiceCategory extends Model {
  services() {
    return this
      .belongsToMany('App/Models/Service')
      .withTimestamps()
  }
}

module.exports = ServiceCategory

我怎样才能让它工作?

4

1 回答 1

3

尝试使用with()

const services = await Service
  .query()
  .with('categories')
  .orderBy('categories.id', 'desc')
  .fetch()

如果不起作用,请使用innerJoin

于 2020-02-15T21:16:04.840 回答