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();