PHP-Laravel 框架中,数据填充(模型工厂)

1.创建模型以及生成数据库迁移:php artisan make:model Flight -m

该命令在app目录下的Models文件中生成了UserInfo模型(如果是php artisan make:model Flight -m,则在app目录下生成模型文件)。-m  是 --migration简写,表示在database\migrations目录下生成一个迁移文件:

这是我们生成的数据库迁移文件,user_infos表示执行迁移文件后的数据表名:

请注意,我们并没有告诉 UserInfo模型使用哪个数据表。 除非明确地指定了其它名称,否则将使用类的复数形式「蛇形命名」来作为表名。因此,在这种情况下,Eloquent 将假设 UserInfo模型存储的是 user_infos数据表中的数据。你可以通过在模型上定义 table 属性来指定自定义数据表:

2.编写数据库迁移文件,我们可以 $table->foreign('user_id')->references('id')->on('users');使用外键约束

3.我们根据模型文件,创建工厂文件:php artisan make:factory UserInfoFactory --model=Models\UserInfo,文件在database\factories下

在这个工厂文件中,我们可以编写模型工厂:https://www.cnblogs.com/jxl1996/p/10335920.html(faker数据填充详解)

4.现在我们生成填充文件:php artisan make:seeder UserInfoSeeder;文件在database\seeds下

我们可以在UserInfoSeeder.php中可以用 查询构造器 或 Eloquent 模型工厂 来手动插入数据。不过我们将使用模型工厂,所以我们在databaseSeeder文件中简单传递要运行的 seeder 类名称即可:

5.我们在userSeed而文件中,完成数据填充:

如果我们要关联填充,则必须在User模型中关联UserInfo模型:

6.至此,我们所有的准备工作已经完成了,现在,我们执行php artisan migrate:fresh --seed,这将删除所有表并重新运行所有迁移。这个命令可以用来重建数据库:

执行成功!我们已经重新生成了数据表以及填充了数据信息:

users表:

user_infos表:

7.结尾

(1)第3条,我们执行:php artisan make:factory UserInfoFactory --model=Models\UserInfo,会生成:

如果是php artisan make:factory UserInfoFactory --model=UserInfo,将  是 use App\UserInfo;由于我们生成模型文件时的路径是在app\Models目录下,所以若是该命令--model=UserInfo,将会无法找到该模型文件,只要在UserInfoFactory文件中将use App\UserInfo;改成use App\Models\UserInfo;

(2)如果是一对多,则在User模型中定义:

在UserSeeder文件中:

所以我们观察到comments表中数据:一个用户拥有多个评论信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值