Thinkphp5 使用composer中seeder播种机

 

前因:

前几天,客户要求做一个会员问答的系统,我就按流程做了,到了需要调用数据库数据时,觉得一个个添加又有点笨~

 

解决过程:

后来查了查手册,看看国外blog案例,我搞出来了个不错的方法~~~

 

我的使用记录已截图:

 

 

 

直到后面这个,显示出,时间,就表明播种机运行成功了~ 

 

 

 

以下是使用官方过程

Seeder 的创建

在 Thinkphp5 项目中,我们可以在命令行输入下面这条命令:

php think seed:create UserSeeder 

创建一个 UserSeeder 文件,创建成功之后你可以在 database/seeds 目录下面看到:

database
|-seeds
|-|-UserSeeder.php

其内容如下:

<?php

use think\migration\Seeder; class UserSeeder extends Seeder { /** * Run Method. * * Write your database seeder using this method. * * More information on writing seeders is available here: * http://docs.phinx.org/en/latest/seeding.html */ public function run() { } } 

代码非常的简单,默认的给出了一个 run 方法,现在我们都知道 seeder 文件是用来产生模拟数据的,而产生模拟数据的代码写在 run 方法中就可以了。

Seeder 的 run 方法

run 方法中,我们可以随意填写了可以填充数据库的任意代码。这里我就抛砖引玉啦:

要求:
给数据表 Users 模拟生成100条数据。表结构如下:

字段说明
nickname呢称
email邮箱
password密码

收到需求后,我可以这样写:

<?php

use think\migration\Seeder; class UserSeeder extends Seeder { /** * Run Method. * * Write your database seeder using this method. * * More information on writing seeders is available here: * http://docs.phinx.org/en/latest/seeding.html */ public function run() { $rows = []; for ($i = 0; $i < 100; $i++) { $rows[] = [ 'nickname' => mt_rand(10000, 99999), 'email' => mt_rand(10000, 99999).'@qq.com', 'password' => md5('123456'), ]; } $this->table('users')->insert($rows)->save(); } } 

注意:一定要调用 save() 方法,否则不会保存的。

首先呢,我生成了100条数据,然后调用 $this->table('users')->insert($rows)->save(); 将生成的数据插入到数据库的 Users 表中。是不是很简单? ^ - ^.

执行 Seeder

Seeder 文件定义好了之后,还必须得执行一下数据才能插入到数据库中,我们可以这样执行:

php think seed:run 

执行成功提示: All Done. Took 0.0552s。可以看到:

 
php think seed:run 
 
 
 
 

转载于:https://www.cnblogs.com/darrenzzy/p/8436321.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值