前因:
前幾天,客戶要求做一個會員問答的系統,我就照流程做了,到了需要呼叫資料庫資料時,我覺得一個個添加又有點笨~
解決過程:
後來查了查手冊,看看國外blog案例,我搞出來了個不錯的方法~~~
我的使用記錄已截圖:
#
##
#Seeder 的建立
在Thinkphp5 專案中,我們可以在命令列輸入下面這條指令:<pre class="hljs css">php think seed:create UserSeeder</pre>
建立一個
database|-seeds |-|-UserSeeder.php | 其內容如下:<?phpuse 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() { } } | 程式碼非常的簡單,預設的給了一個
---|---|
Seeder 的 run 方法 | 在 run | 方法中,我們可以隨意填入了可以填入資料庫的任意程式碼。這裡我就拋磚引玉啦:
要求:<a href="http://www.php.cn/code/114.html" target="_blank">給資料表 </a>Users 模擬產生100個資料。表格結構如下: |
|
說明 |
呢稱呼
email信箱
密碼
#收到需求後,我可以這樣寫:
<?phpuse 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()方法,否則不會儲存的。
$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中文網其他相關文章!