为你的 Faker(假数据生成器)指定中文支持 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

[为你的 Faker(假数据生成器)指定中文支持 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区]

[file

](https://lccdn.phphub.org/uploads/images/201807/27/5359/CD8BCInjXj.jpg?imageView2/2/w/1240/h/0)

Laravel 中使用 Faker 构造假数据时,默认的输出为英文格式,如下
[](https://lccdn.phphub.org/uploads/images/201807/27/5359/XzKoEjFqVj.png?imageView2/2/w/1240/h/0)

[file

](https://lccdn.phphub.org/uploads/images/201807/27/5359/XzKoEjFqVj.png?imageView2/2/w/1240/h/0)

可通过在 config/app.php 增加如下配置使其支持中文。

'faker_locale' => 'zh_CN',

修改后再次执行效果如下:

[file

](https://lccdn.phphub.org/uploads/images/201807/27/5359/zRnzpM6HwI.png?imageView2/2/w/1240/h/0)

今天在使用 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')
        );
    });
}

二楞徐的闲谈杂鱼


Original url: Access

Created at: 2018-10-10 17:09:50

Category: default

Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论