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 
相關文章
相關標籤/搜索