DIESE ANTWORT IST NUR FÜR LARAVEL gültig < = 5.1 siehe this answer for a solution in Laravel >=5.2.
Um ein Gebietsschema mit Faker zu verwenden, muss der Generator mit dem Gebietsschema erstellt werden.
$faker = Faker\Factory::create('fr_FR'); // create a French faker
Von der faker Dokumentation:
Wenn keine lokalisierte Anbieter gefunden wird, die Fabrik Fallbacks auf das Standardgebietsschema (de_DE).
Laravel bindet standardmäßig die Erstellung einer Faker-Instanz in EloquentServiceProvider
. Der genaue Code verwendet zu binden:
// FakerFactory is aliased to Faker\Factory
$this->app->singleton(FakerGenerator::class, function() {
return FakerFactory::create();
});
Es scheint, dass Laravel keine Möglichkeit hat, das Gebietsschema der faker Instanz es geht in die Fabrikschließungen zu ändern, da es nicht in irgendwelchen Argumenten Faker hindurchgeht.
Als solche würden Sie besser bedient werden, indem Sie Ihre eigene Instanz von Faker in der Fabrikmethode verwenden.
$localisedFaker = Faker\Factory::create("fr_FR");
$factory->define(App\Flyer::class, function (Faker\Generator $faker) {
// Now use the localisedFaker instead of the Faker\Generator
// passed in to the closure.
return [
'zip' => $localisedFaker->postcode,
'state' => $localisedFaker->state,
];
});
Für Laravel> = 5.2 ist dies die beste Antwort. – Soroush
Ich denke, das funktioniert, wenn Sie ein _single_ Gebietsschema für Ihre gesamte App wollen .. das ist nicht gut, wenn Sie mehrsprachige Tests unterstützen möchten – abbood
Sie können immer die Fälschung Instanz aus dem DI-Container (app()) –