前因:
字段 說明 呢稱 郵箱 密碼
前幾天,客戶要求做一個會員問答的系統,我就按流程做了,到了需要調用數據庫數據時,覺得一個個添加又有點笨~
解決過程:
后來查了查手冊,看看國外blog案例,我搞出來了個不錯的方法~~~
我的使用記錄已截圖:
直到后面這個,顯示出,時間,就表明播種機運行成功了~
以下是使用官方過程
Seeder 的創建
在 Thinkphp5 項目中,我們可以在命令行輸入下面這條命令:
php think seed:create UserSeeder
創建一個 UserSeeder
文件,創建成功之后你可以在 database/seeds
目錄下面看到:
database|-seeds |-|-UserSeeder.php
其內容如下:
<?phpuse think\migration\Seeder;class UserSeeder extends Seeder { public function run() { } }
代碼非常的簡單,默認的給出了一個 run
方法,現在我們都知道 seeder 文件是用來產生模擬數據的,而產生模擬數據的代碼寫在 run
方法中就可以了。
Seeder 的 run 方法
在 run
方法中,我們可以隨意填寫了可以填充數據庫的任意代碼。這里我就拋磚引玉啦:
要求:
給數據表 Users
模擬生成100條數據。表結構如下:
nickname
email
password
收到需求后,我可以這樣寫:
<?phpuse think\migration\Seeder;class UserSeeder extends Seeder { 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
以上就是Thinkphp5 使用composer中seeder播種機的詳細內容,更多請關注php中文網其它相關文章!