为你的 Faker(假数据生成器)指定中文支持
在 Laravel
中使用 Faker
构造假数据时,默认的输出为英文格式,如下
可通过在 config/app.php
增加如下配置使其支持中文。
'faker_locale' => 'zh_CN',
修改后再次执行效果如下:
今天在使用
Faker
构造数据时,纳闷为什么不能是中文,查看 官方扩展包 原来早就支持了啊。(是我孤陋寡闻了呀,赶紧分享给没发现的同学)
Laravel
源码中是在 DatabaseServiceProvider
中注册的国际化支持。
// vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php
protected function registerEloquentFactory()
{
$this->app->singleton(FakerGenerator::class, function ($app) {
return FakerFactory::create($app['config']->get('app.faker_locale', 'en_US'));
});
$this->app->singleton(EloquentFactory::class, function ($app) {
return EloquentFactory::construct(
$app->make(FakerGenerator::class), $this->app->databasePath('factories')
);
});
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 6年前 自动加精
很方便哈
@eiomi 是啊,就是没发现对国内用户友好的图片生成网站,https://lorempixel.com/ 这个生成器访问速度有点慢呀
https://uifaces.co/api-docs 这个可以选择性别生成的数据
请问这个支持生成长段落中文吗?
@Pepsi丶 目前只支持这几种呢
前段时间我用这个 Faker 包生成 union 修饰的中文公司名,出现了公司名的重复插入,导致迁移失败。多尝试几次重新迁移,偶尔能成功。中文数据还是太少。现在不知道怎么样了。
这个貌似只汉化了name这个属性 像title text 都没有汉化
@mingc 有可能是你生成的数据量比较大,因为默认情况下
只会生成
10000
条不重复的数据,并且company
的中文支持最大只能生成条数据。
@CorePlusPlus 目前汉化了的属性可以再 这里 查看呢,不仅仅是
name
,但汉化的也不多。:+1:
踩了个坑,好久才爬出来。。
'faker_locale' => 'zhCN', 是『』不是『-』
而'locale' => 'zh-CN', 是『-』
@阿伦 我使用的是 Faker 是
v1.7.1
版本,设置的是ZH-CN
噢,@godruoyi 把我下划线吞了。。我的是1.4版本,中间是下划线