我正在嘗試將用戶模型從 adonis 遷移到 postgres,但我不斷收到此錯誤Primary key value is missing for user我的模型看起來像這樣:class User extends Model { static boot () { super.boot() this.addHook('beforeSave', async (userInstance) => { if (userInstance.dirty.password) { userInstance.password = await Hash.make(userInstance.password) } }) } tokens () { return this.hasMany('App/Models/Token') }}module.exports = User我嘗試運行的遷移是:/** @type {import('@adonisjs/lucid/src/Schema')} */const Schema = use('Schema')class UserSchema extends Schema { up () { this.create('users', (table) => { table.increments() table.string('username', 80).notNullable().unique() table.string('email', 254).notNullable().unique() table.string('password', 60).notNullable() table.timestamps() }) } down () { this.drop('users') }}module.exports = UserSchema我嘗試添加primary()假設table.increments()它正在 postgre 數據庫中生成自動增量 id。當我檢查數據庫時,有時會添加用戶,但 id 從 2 到 4 等等控制器看起來像這樣const User = use('App/Models/User')class UserController { async register({request, auth, response}) { const username = request.input("username") const email = request.input("email") const password = request.input("password") let user = new User() user.username = username user.email = email user.password = password user = await user.save() let accessToken = await auth.generate(user) return response.json({"user": user, "access_token": accessToken}) } async login({request, auth, response}) { const email = request.input("email") const password = request.input("password"); try { if (await auth.attempt(email, password)) { let user = await User.findBy('email', email) let accessToken = await auth.generate(user) return response.json({"user":user, "access_token": accessToken}) } } catch (e) { return response.json({message: 'You first need to register!'}) } }
Adonis JS 用戶缺少主鍵值
德瑪西亞99
2023-07-06 09:57:51