2015-10-20 9 views
0

Я построил свою фабрику моделей и прекрасно работает, однако сгенерированные предложения, слова и другие строки находятся в Latin, и я искал следующие решения (которые не работают для меня):Модель Factory генерирует латинские результаты, а не по-английски и не принимает ни одну другую локаль

  • ModelFactory.php

    $factory->define(App\Models\User::class, function (Faker\Generator $faker) 
    { 
        $faker->locale = "en_US"; // nothing changed 
        return [ 
         ..... 
        ]; 
    } 
    
  • AppServiceProvider.php, или даже DatabaseServiceProvider.php

    $this->app->singleton(\Faker\Generator::class, function() { 
        return \Faker\Factory::create('en_US'); 
    }); 
    

И еще не на английском языке, как: Soluta doloremque in consequatur.

Что странно, что в vendor/fzaninotto/faker/src/Faker/Factory.php классе

первая линия is const DEFAULT_LOCALE = 'en_US';

с функцией создания public static function create($locale = self::DEFAULT_LOCALE)

Должен ли я что-то запускать, прежде чем делать какие-либо изменения?

Мне нужна помощь Я дошел до тупика с этим!

Update:

Когда я бег завода по модели пользователя она работает с локалью Сидящим в AppServiceProvider и по умолчанию он действительно английский, однако, другая модель, которую я получил под пользователем в ModelFactory.php это один с Только латинские результаты.

вот код для обоих:

// English, settable 
$factory->define(App\Models\User::class, function (Faker\Generator $faker) { 
    return [ 
     'name' => $faker->name, 
     'email' => $faker->email, 
     'password' => bcrypt(str_random(10)), 
     'remember_token' => str_random(10), 
    ]; 
}); 

// Obligately Latin 
$factory->define(App\Models\Application::class, function (Faker\Generator $faker) { 
    return [ 
     'title' => $faker->sentence('3'), 
     'description' => $faker->paragraph, 
     'field_id' => $faker->numberBetween(1,3), 
     'published_at' => $faker->dateTimeBetween('-1 years'), 
     'icon_url' => $faker->imageUrl(256, 256), 
     'cover_url' => $faker->imageUrl(888, 444), 
     'android_url' => $faker->url, 
     'ios_url' => $faker->url, 
     'windows_url' => $faker->url, 
     'android_download_count' => $faker->randomDigit, 
    ]; 
}); 

И я никогда в сравнении этих двух моделей, ничего подозрительного с ним.

ответ

2

Это ограничение пакета faker, который Laravel использует для создания семян базы данных.

Оба «предложения» и «параграф» включены в Lorem провайдер faker. Это исключительно латинский язык и не может быть изменен на другой язык.