laravel使用Faker数据填充的实现方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-11-17 10:35:51 浏览: 评论:0
这篇文章主要给大家介绍了关于laravel使用Faker数据填充的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
导语
做开发的时候,添加测试数据是必不可少的,laravel 内置了很方便的数据填充,下面是实例。
注意:laravel5框架中已经内置了faker组建,不用安装
数据迁移
先创建数据模型和数据迁移 php artisan make:model Models/FakerUser -m;
只创建几个简单字段,编辑 database/migrations/{now_date}_create_faker_users_table.php 文件
- /**
- * Run the migrations.
- *
- * @return void
- */
- public function up()
- {
- Schema::create('faker_users', function (Blueprint $table) {
- $table->increments('id');
- $table->char('name', 20)->comment('姓名');
- $table->string('email', 50)->comment('邮箱');
- $table->tinyInteger('age')->comment('年龄');
- $table->char('city', 20)->comment('城市');
- $table->timestamps();
- });
- DB::statement("ALTER TABLE `faker_users` comment'测试用户表'"); // 表注释
- }
运行数据迁移 php artisan migrate 之后数据表创建完成。
数据填充
创建数据填充文件 php artisan make:seeder FakerUsersSeeder;
创建完成后,我们可以在 run() 方法中手动添加几条测试数据。但是好的办法,是使用模型工厂,接下来把注意力转移到模型工厂中;
创建模型工厂 php artisan make:factory FakerUsersFactory;
在模型工厂中,可以通过 Faker\Generator 来生成测试数据,编辑 database/factories/FakerUsersFactory.php
- use Faker\Generator as Faker;
- $factory->define(\App\Models\FakerUser::class, function (Faker $faker) {
- return [
- 'name' => $faker->name,
- 'email' => $faker->safeEmail,
- 'age' => $faker->numberBetween(8, 80),// 数字在 8-80 之间随机
- 'city' => $faker->city,
- 'created_at' => $faker->dateTimeBetween('-3 year', '-1 year'),// 时间在 三年到一年 之间
- 'updated_at' => $faker->dateTimeBetween('-1 year', '-5 month'),// 时间在 一年到五个月之间
- ];
- });
由上述代码可以很直白的看出 Faker\Generator 的作用。它可以生成的数据类型有很多,更多的类型可以看下官方文档,虽然是英文的,不过都有示例,简单易懂;
Faker 生成的数据默认是英文,可以在 config/app.php 中将 faker_locale 设置为 zh_CN;
模型工厂写好了,接下来就是调用。目光回到数据填充文件 database/seeds/FakerUsersSeeder.php,在 run() 方法中如下代码
- /**
- * Run the database seeds.
- *
- * @return void
- */
- public function run()
- {
- factory(\App\Models\FakerUser::class)->times(1000)->make()->each(function ($model) {
- // 数据入库
- $model->save();
- });
- }
time() 是生成的次数,make() 方法是创建模型实例,在 each() 方法中将生成的模型实例入库保存。
最后就是执行数据填充,composer dump-autoload 之后 php artisan db:seed --class=FakerUsersSeeder
测试
好了,看下数据库的数据是否生成正确,看下总数
总数没有问题,随机看十条数据
数据也是正确的。
Tags: laravel Faker
相关文章
- ·Laravel 5.6中的CURD操作(代码示例详解)(2020-01-15)
- ·如何在laravel 5中创建用于XSS防御的中间件? (2020-01-16)
- ·关于Laravel重定向的七种方法详解(2020-01-26)
- ·如何在laravel 5中使用DB事务?(2020-01-31)
- ·Laravel中如何给图片加水印?(2020-04-05)
- ·Laravel框架数据库CURD操作、连贯操作总结(2021-04-10)
- ·Laravel框架路由配置总结、设置技巧大全(2021-04-10)
- ·Laravel框架中扩展函数、扩展自定义类的方法(2021-04-10)
- ·跟我学Laravel之快速入门(2021-04-16)
- ·跟我学Laravel之安装Laravel(2021-04-16)
- ·跟我学Laravel之配置Laravel(2021-04-16)
- ·跟我学Laravel之请求(Request)的生命周期(2021-04-16)
- ·跟我学Laravel之路由(2021-04-16)
- ·跟我学Laravel之请求与输入(2021-04-17)
- ·跟我学Laravel之视图 & Response(2021-04-17)
- ·laravel安装和配置教程(2021-04-19)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)