在AdonisJs中使用外键保存到数据库可以通过以下步骤实现:
// app/Models/User.js
const Model = use('Model')
class User extends Model {
posts() {
return this.hasMany('App/Models/Post')
}
}
module.exports = User
// app/Models/Post.js
const Model = use('Model')
class Post extends Model {
user() {
return this.belongsTo('App/Models/User')
}
}
module.exports = Post
在数据库中创建两个表,一个表示主表,另一个表示外键关联的表。确保外键关联的表中有一个列用于保存外键的值。
在控制器中使用模型来保存数据。
// app/Controllers/Http/PostController.js
'use strict'
const Post = use('App/Models/Post')
class PostController {
async store({ request, auth }) {
const data = request.only(['title', 'content'])
const user = await auth.getUser()
const post = new Post()
post.fill(data)
post.user_id = user.id // 设置外键的值为当前用户的ID
await post.save()
return post
}
}
module.exports = PostController
在上述示例中,我们使用auth.getUser()
方法获取当前用户的信息,然后将其ID设置为外键的值。
通过以上步骤,你就可以在AdonisJs中使用外键保存到数据库了。