iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0

在上一篇我們知道了如何使用版本控制來建立跟返回資料表,那開發中不乏就還缺少所謂的測試資料/假資料,Laravel在這方面還頗方便的,我們可以使用seed這個東西協助我們做出測試資料。

一樣老地方來個artisan指令當起點吧!

php artisan make:seeder UsersTableSeeder

產生seeder都會放在database/seeds這個目錄中

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        DB::table('users')->insert([
            'name' => str_random(10),
            'email' => str_random(10).'@gmail.com',
        ]);
    }
}

這樣執行應該會出錯,因為我們的前一篇migrate的只有id,並沒有name跟email這兩個欄位,所以這時候我們需要來返回一下
php artisan migrate:reset

然後修改database\migrations下的create_users_table.php,如下

    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
			$table->string('name');
			$table->string('email');
            $table->timestamps();
        });
    }

之後再執行一次
php artisan migrate
然後在試看看
php artisan db:seed --class=UsersTableSeeder

去phpmyadmin瞧瞧!!應該就可以囉~

Seeder中就只有一個run,依照自己的需求來放入所需要的資料,如email這個欄位就是亂數產生字串再搭上@gmail.com,所以藉由PHP的亂數來設計假資料,可以讓整個測試資料更為真實,也能知道在不同情況下,會有怎樣的感覺,進而得到確認自己開發的效果。

Run中不見得只會做新增寫入的行為,也可以執行刪除、清空資料的行為,一切都可以依據自己實際的需求做變化。Run也可以直接操作model唷。

執行seed

php artisan db:seed
php artisan db:seed --class=UsersTableSeeder

所以我們來整理一下思緒

  • Migrate幫你把資料表的”結構”做出來或者是操作資料表
  • Seeder幫你把數據寫進去

這一篇我們從seed知道如何去運作一個開發資料的填充,總感覺laravel學習的過程中,laravel一直把需要重複操作的行為改為使用工具/腳本,讓開發者可以不用一直重複操作,而是運用指令就可以輕鬆完成。


上一篇
DAY16: 遷移
下一篇
DAY18: 基礎 model
系列文
從0開始-30天摸索laravel31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言