Thinkphp5 使用composer中seeder播种机
2018-06-22 05:35:49来源:未知 阅读 ()
前因:
前几天,客户要求做一个会员问答的系统,我就按流程做了,到了需要调用数据库数据时,觉得一个个添加又有点笨~
解决过程:
后来查了查手册,看看国外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
。可以看到:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:php面向对象精要(1)
下一篇:PHP定义字符串的四种方式
- 详解php中的implements 使用 2020-03-18
- PHP简单留言本功能实现代码 2020-03-13
- PHP中APC缓存配置及使用详解 2020-03-04
- ThinkPHP分页类使用详解 2020-02-24
- ThinkPHP验证码使用简明教程 2020-02-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash