Laravel Faker
在
Laravel
中使用Faker
构造假数据时,默认的输出为英文格式,如下
可通过在 config/app.php
增加如下配置使其支持中文。
'faker_locale' => 'zh_CN',
修改后再次执行效果如下:
今天在使用
Faker
构造数据时,纳闷为什么不能是中文,查看 官方扩展包 原来早就支持了啊。(是我孤陋寡闻了呀,赶紧分享给没发现的同学)目前
Laravel >= 5.7
已经在config\app.php
中默认添加了faker_locale
配置。
Laravel DatabaseServiceProvider
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')
);
});
}