[英]Laravel 5.1 Localize Factory Seeder
我实施了一个新工厂来生成随机数据。 但是我希望以de_DE的格式提供这个随机数据。 所以通常我首先创建一个faker对象,但是在Laravel 5.1中使用新的ModelFactory类并不是这样。 我如何本地化呢?
$factory->define(App\Models\AED::class, function($faker) {
return [
'owner' => $faker->company,
'street' => $faker->streetAddress,
'latitude' => $faker->latitude,
'longitude' => $faker->longitude
];
});
为了更改Faker使用的默认语言环境,最简单的方法是使用您自己的具体实现覆盖FakerGenerator
绑定:
// AppServiceProvider.php
$this->app->singleton(FakerGenerator::class, function () {
return FakerFactory::create('nl_NL');
});
在AppServiceProvider.php
文件的顶部添加以下行:
use Faker\Generator as FakerGenerator;
use Faker\Factory as FakerFactory;
例如,上面的代码将表示使用nl_NL
提供程序创建所有Faker实例,从而创建Dutch faker数据。
请记住:这必须在执行DatabaseServiceProvider 之后发生,因此请确保在config.php
数组中的所有Laravel ServiceProviders 之后放置自己的AppServiceProvider
。
尝试
$factory->define(App\Models\AED::class, function($faker) {
$faker->locale = "YOUR_LOCALE";
...
});
在ModelFactory.php的顶部或AppServiceProvider :: register()方法中添加它:
$this->app->singleton(\Faker\Generator::class, function () {
return \Faker\Factory::create('de_DE');
});
您必须添加提供商,例如。
$factory->define(Mylead\Models\UserDetails::class, function($faker) {
$faker->addProvider(new Faker\Provider\pl_PL\Person($faker));
$faker->addProvider(new Faker\Provider\pl_PL\Payment($faker));
return [
'name' => $faker->name,
'surname' => $faker->lastname,
'street' => $faker->streetName,
'city' => $faker->city,
'post_code' => $faker->pesel,
'pesel' => $faker->pesel,
'paypal' => $faker->email,
'bank_name' => $faker->bank,
'bank_account' => $faker->bankAccountNumber,
'created_at' => $faker->dateTime
];
});
目前您无法设置manualy Faker区域设置。 它应该在Laravel Core上更改
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.