Laravel 5 使用 Seeder & Faker 生成假数据
还在为手动填写假数据而头疼吗?Laravel 使用 Faker 可以很灵活的添加所需的特定格式的数据,可以通过 tinker 命令行预览、保存测试数据,也可以直接在 Seed 中写好相应代码一键生成。所有的 seeder 文件在 database/seeds 目录下。
Faker 是一个 PHP 库,为您生成假数据
laravel 框架默认引入了 fzaninotto/Faker 包,这个包能让我们快速的生成一些测试数据。本地化
packages
composer require fzaninotto/faker
创建 seeder 文件
1 | php artisan make:seeder UserTableSeeder |
用 laracasts/generators 包创建文件
1 | // 步骤1:通过Composer安装 |
命令
1 | make:migration:schema |
迁移与模式
1 | php artisan make:migration:schema create_articles_table --schema="title:string, conent:text, published_at:timestamp" |
创建如下文件内容
1 |
|
删除
1 | php artisan make:migration:schema remove_published_at_from_articles_table --schema="published_at:timestamp" |
创建如下文件内容
1 |
|
多对多关系
1 | php artisan make:migration:pivot tags articles |
创建如下文件内容
1 |
|
用 laravel-test-factory-helper 包自动生成属性
该软件包可帮助您从现有的模型/数据库结构生成模型工厂,以便更快速地测试Laravel应用程序
1 | composer mpociot/laravel-test-factory-helper |
config/app.php 添加服务提供商
1 | Mpociot\LaravelTestFactoryHelper\TestFactoryHelperServiceProvider::class |
执行
1 | // database/factory/ModelFactory.php 模型工厂文件会自动生成各个模型对应字段数据 |
安全保证
在 .env 文件中的 APP_ENV 配置通常可以配置以下三个值
1 | // local 代表本地环境 |
执行 seed
使用 php artisan make:seeder 命令来创建数据时,会调用 database/seeders 目录下的 DatabaseSeeder.php 文件中的 run() 方法。生成数据的代码可以放在 run() 中,既支持 DB 操作,也支持 Factory 方法,在 run() 中使用 call() 函数一次性来添加操作方法。
1 |
|
1 | // 执行这一步如果出现错误: 出现 [ReflectionException] Class does not exist 的提示。 |