laravel5內置了 fzaninotto/faker 這個庫,我們可以非常簡單的創建一大堆模擬數據。
1. 模型工廠定義
Laravel 5 提供了一個全局的對象 $factory 用來定義我們的工廠
database/factories/UserFactory.php
$factory->define(App\User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
'remember_token' => str_random(10),
];
});
從上面代碼可以看到,define方法有兩個參數,一個是對象模型類,另一個是一個帶了Faker\Generator類的閉包,返回用戶對象數組。
2. 使用工廠
創建模型但不將他們保存至數據庫
$user = factory(App\User::class)->make();
// 創建三個 App\User 實例...
$users = factory(App\User::class, 3)->make();
create 方法創建模型實例的同時還調用了把記錄寫入數據庫
$user = factory(App\User::class)->create();