在上一篇我們知道了如何使用版本控制來建立跟返回資料表,那開發中不乏就還缺少所謂的測試資料/假資料,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
所以我們來整理一下思緒
這一篇我們從seed知道如何去運作一個開發資料的填充,總感覺laravel學習的過程中,laravel一直把需要重複操作的行為改為使用工具/腳本,讓開發者可以不用一直重複操作,而是運用指令就可以輕鬆完成。