Как заказать результаты Lucid Models на основе отношения? - PullRequest
0 голосов
/ 06 февраля 2020

Я хочу заказать все Service результаты модели на основе отношения (которое принадлежит тому же ServiceCategory), как Laravel, что-то вроде этого:

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

Проблема в том, что Lucid не понимает этого и выдает следующую ошибку:

выберите * из services упорядочите categories. id как c - ER_BAD_FIELD_ERROR: Неизвестный столбец 'category.id' в 'предложении заказа'

Это модель сервиса:

const Model = use('Model')

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

module.exports = Service

Это модель категории сервиса:

const Model = use('Model')

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

module.exports = ServiceCategory

Как я могу заставить это работать?

1 Ответ

0 голосов
/ 16 февраля 2020

Попробуйте использовать с ()

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

, если не работает, используйте innerJoin

...