Thinkphp5 使用composer中seeder播种机

 

前因:php

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

 

解决过程:html

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

 

个人使用记录已截图:ruby

 

 

 

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

 

 

 

如下是使用官方过程spa

Seeder 的建立

在 Thinkphp5 项目中,咱们能够在命令行输入下面这条命令:命令行

php think seed:create UserSeeder 

建立一个 UserSeeder 文件,建立成功以后你能够在 database/seeds 目录下面看到:code

database
|-seeds |-|-UserSeeder.php 

其内容以下:orm

<?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 
相关文章
相关标签/搜索