laravel使用Faker数据填充的方法介绍(代码)
发布时间 - 2019-04-12 00:00:00 点击率:次本篇文章给大家带来的内容是关于laravel使用Faker数据填充的方法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
导语:做开发的时候,添加测试数据是必不可少的,laravel 内置了很方便的数据填充,下面是实例。
数据迁移
先创建数据模型和数据迁移 php artisan make:model models/fakeruser -m;
只创建几个简单字段,编辑 database/migrations/{now_dat 文件
e}_create_faker_users_table.php
/**
* Run the migrations.
*
* @return void
*/7
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
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
测试
好了,看下数据库的数据是否生成正确。看下总数
总数没有问题,随机看十条数据
数据也是正确的
# laravel
# php
# composer
# 数据类型
# class
# database
# 数据库
# 好了
# 英文
# 测试数据
# 几个
# 都有
# 有很多
# 对你
# 有一定
# 我们可以
# 可以通过
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
详解MySQL数据库的安装与密码配置
如何快速搭建高效服务器建站系统?
如何用腾讯建站主机快速创建免费网站?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
Laravel如何保护应用免受CSRF攻击?(原理和示例)
Python3.6正式版新特性预览
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
Laravel如何使用Livewire构建动态组件?(入门代码)
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
JavaScript如何实现继承_有哪些常用方法
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
晋江文学城电脑版官网 晋江文学城网页版直接进入
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
如何基于云服务器快速搭建个人网站?
Laravel如何实现一对一模型关联?(Eloquent示例)
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
Laravel如何创建自定义中间件?(Middleware代码示例)
网易LOFTER官网链接 老福特网页版登录地址
南京网站制作费用,南京远驱官方网站?
如何基于云服务器快速搭建网站及云盘系统?
非常酷的网站设计制作软件,酷培ai教育官方网站?
如何快速搭建高效可靠的建站解决方案?
如何用西部建站助手快速创建专业网站?
Laravel如何创建自定义Artisan命令?(代码示例)
IOS倒计时设置UIButton标题title的抖动问题
打造顶配客厅影院,这份100寸电视推荐名单请查收
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
C语言设计一个闪闪的圣诞树
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
公司网站制作价格怎么算,公司办个官网需要多少钱?
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
制作公司内部网站有哪些,内网如何建网站?
网页设计与网站制作内容,怎样注册网站?
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
如何自定义建站之星网站的导航菜单样式?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?

