Thinkphp5 使用composer中seeder播種機

來源:互聯網
上載者:User
前因:

前幾天,客戶要求做一個會員問答的系統,我就按流程做了,到了需要調用資料庫資料時,覺得一個個添加又有點笨~

解決過程:

後來查了查手冊,看看國外blog案例,我搞出來了個不錯的方法~~~

我的使用記錄已:

直到後面這個,顯示出,時間,就表明播種機運行成功了~

以下是使用官方過程

Seeder 的建立

在 Thinkphp5 項目中,我們可以在命令列輸入下面這條命令:

php think seed:create UserSeeder

建立一個 UserSeeder 檔案,建立成功之後你可以在 database/seeds 目錄下面看到:

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()    {    }}

代碼非常的簡單,預設的給出了一個 run 方法,現在我們都知道 seeder 檔案是用來產生類比資料的,而產生類比資料的代碼寫在 run 方法中就可以了。

Seeder 的 run 方法

run 方法中,我們可以隨意填寫了可以填充資料庫的任意代碼。這裡我就拋磚引玉啦:

要求:
給資料表 Users 類比產生100條資料。表結構如下:

欄位 說明
nickname 呢稱
email 郵箱
password 密碼

收到需求後,我可以這樣寫:

<?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() 方法,否則不會儲存的。

首先呢,我產生了100條資料,然後調用 $this->table('users')->insert($rows)->save(); 將產生的資料插入到資料庫的 Users 表中。是不是很簡單? ^ - ^.

執行 Seeder

Seeder 檔案定義好了之後,還必須得執行一下資料才能插入到資料庫中,我們可以這樣執行:

php think seed:run

執行成功提示: All Done. Took 0.0552s。可以看到:



php think seed:run

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.