Автоотношения в adonis.js /node.js, как я могу показать только одно свойство? - PullRequest
1 голос
/ 28 октября 2019

У меня есть одна таблица пользователей, у которой есть авто-отношения, поэтому 1 пользователь должен быть обновлен сам.

Итак, я делаю эту миграцию:

class UserSchema extends Schema {
  up () {
    this.create('users', (table) => {
      table.increments() /
      table.string('username').notNullable().unique()
      table.integer('user_id').references('id').inTable('users')
      table.timestamps()
    })
  }

  down () {
    this.drop('users')
  }
}

В этом запросеМне нужно имя пользователя, который обновляет одного пользователя. Поэтому я пытаюсь выполнить этот запрос в моем контроллере:

async index({request}) {
    const page = request.input('page')
    const pageSize = request.input('pageSize')
    const users = await User
        .query()
        .with('user')
        .paginate(page, pageSize)
    return users.toJSON()
}

Как вы можете видеть в этом json, я получаю массив пользователя, есть способ получить только имя user_id?

{"total":"1","perPage":10,"page":1,"lastPage":1,"data":[{"id":1,"username":"admin","user_id":1,"created_at":"2019-10-28 11:17:29","updated_at":"2019-10-28 14:27:22","user":{"id":1,"username":"admin", "user_id":1,"created_at":"2019-10-28 11:17:29","updated_at":"2019-10-28 14:27:22"}}]}

Как я могу поймать имя пользователя, который делает обновление, по user_id?

Я поместил это в мою модель:

  user () {
    return this.hasOne('App/Models/User')
  }
...