用户登录

一条数据记录跟多个数据记录相关联,这个就是数据之间的一对多的关系。比如在我们的应用里,一个用户可以跟多个文章资源相关联 .. 因为一个用户可以是多个文章内容的作者 .. 这种关系可以使用模型的 hasMany 来描述一下 ..

下面可以先去准备一些需要的数据 ..

在数据库客户端这里,查看一下应用的 users 表 ... 你会看到这里已经有了几条用户数据 ...

再查看一下 posts 表 .. 这个表里现在也有几条数据,我们可以先把它们删除掉 .. 选中这几条数据记录 .. 点一下删除 ... 再 Apply .. 应用一下 ...

注意现在这个 posts 表里的字段 .. 现在只有 id ,title,content,created_at 还有 upated_at .. 我们需要在这个表里再添加一个 user_id 字段 .. 里面要存储一下文章的作者是谁 .. 就是用户的 id 号 ..

可以先去创建一个 migration,在这个 posts 表里添加一个 user_id 字段 .. 回到命令行 .. 在项目的下面,执行一下 adonis make:migration 名字是 posts_add_user_id_column .. 选择 select table ..

回到项目 ... 找到刚才创建的 migration ...

先修改一下 up 方法里的东西 .. 数据表是 posts ..

里面再用 table 的 integer 添加一个整数类型的字段,名字是 user_id ... unsigned ,表示都是正数 .. 再用 table.foreign 设置一下外键 .. 这个表里的外键就是 user_id .. references ,它关联的是 users 表里面的 id 字段 ..

然后改造一下 down 方法 ... 数据表是 posts ... 在 rollback 这个 migration 的时候我们先要删除掉外键,然后再删除掉 user_id 这个栏 .. 先用一下 table 的 dropForeign .. 删除掉 user_id 外键 ..

再用一下 table 的 dropColumn ... 删除 user_id 这个栏 ..

回到命令行 ... 执行一下 adonis migration:run ...

Seeder

成功以后再去添加一个 Seeder,往 posts 表里添加点演示数据 .. adonis make:seed Post ..

回到项目 .. 找到刚才创建的 Seeder 文件 ..

我们需要在这里用到 Post 模型 .. 添加一个 Post ... 模型的位置是 App/Models 下面的 Post ..

然后在 run 方法里,可以先添加一组要插入到 posts 表里的数据 .. 添加一个 posts ... 每个项目都是一个对象 .. 里面需要 title 字段,文章的标题 .. content ... 文章的正文 ... 还有 user_id .. 文章的作者的 id 号 ... 这个 id 的值对应的就是 users 表里面的数据记录的 id 号 ..

下面可以使用同样的形式去添加几个文章数据 ...

把这些数据放在 posts 表面保存起来 .. await .. 用一下 Post 模型里的 createMany .. 数据是上面定义的 posts ..

回到命令行 ... 执行一下 adonis seed --files PostSeeder.js

完成以后回到数据库的客户端 ... 浏览一下应用里的 posts 表里面的内容 ... 这里你会发现有我们刚才放进来的数据记录 ..

一对多关系:准备模型与数据《 Node.js 应用:内容关系 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点