本来是要来介绍 view 中的 foreach 功能,这个功能需要很多数据,因为是循环嘛。
所以要先创建好多数据。
在开发环境中,我们经常需要创建一些用于测试的假数据。
如果你是一名 ruby on rails
开发者,可能用过下面这两个 gem
。
https://github.com/stympy/faker
https://github.com/ffaker/ffaker
它们就是用来创建假数据的。
比如说,你要创建一百条用户数据,而每个用户名或邮箱是不同的,这个时候,其实我们用随机的字符串就好了,可是这个叫 faker
的东西,能让我们的用户名更接近于现实,可读性更强。
在 laravel
,默认就有这样的功能,我们来介绍一下。
找到 database/factories/ModelFactory.php
文件,内容如下:
<?php
$factory->define(App\User::class, function (Faker\Generator $faker) {
static $password;
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10),
];
});
代码也不复杂,使用的是 App\User::class
这个 model,$faker->name
表示随机的用户名,其他的也比较好解释,密码都为
secret
。
怎么引用这个 factory 呢?
找到 database/seeds/DatabaseSeeder.php
文件,修改如下:
<?php
// database/seeds/DatabaseSeeder.php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run()
{
// 新增这一行
factory(App\User::class, 100)->create();
// $this->call(UsersTableSeeder::class);
}
}
怎么来执行这个 seed 呢?
在终端上输入如下指令:
$ php artisan db:seed
执行完之后数据表 users
会多出一百条记录:
试着用任何一个新创建的用户登录试试。
登录地址是 http://127.0.0.1:8000/login
,密码是 secret
。
完结。