2017-05-15 57 views
0

工作,我有一個Post模型的這些字段:本地化法克爾廠不laravel

post_id 
post_title 
post_content 
post_content_full 
author 

現在我想用laravel sedders和示範工廠,以製造假fa_IR本地化數據,並插入到posts表。

對於我在database/factories/ModelFactory.php寫了這個:

$factory->define(App\Post::class, function (Faker\Generator $faker) { 
     return [ 
      'post_title'  => $faker->sentence, 
      'post_content'  => $faker->paragraph, 
      'post_content_full' => $faker->paragraph(3), 
      'author'   => $faker->name 
     ]; 
    }); 

然後,我創建了一個PostsTableSeeder類是這樣的:

use Illuminate\Database\Seeder; 

class PostsTableSeeder extends Seeder 
{ 
    /** 
    * Run the database seeds. 
    * 
    * @return void 
    */ 
    public function run() 
    { 
     factory(App\Post::class, 5)->create(); 
    } 
} 

而且在AppServiceProvider.php下面的代碼添加到register功能:

$this->app->singleton(FakerGenerator::class, function() { 
     return FakerFactory::create('fa_IR'); 
    }); 

但運行種子後,laravel使用默認語言環境(en_US)並忽略fa_IR

我不知道還能做些什麼。

更新:

即使我在DEFAULT_LOCALE常量變爲vendor/fzaninotto/faker/src/Faker/Factory.phpfa_IR沒有什麼改變。

+0

支持你能嘗試使用' - > address()'方法?可能出現'fa_IR'語言不支持所使用的函數 – Neat

+0

是的,它在使用地址時起作用。是否意味着'fa_IR'語言不支持'paraphraph'? –

+0

是的,可惜這是正確的,我認爲它可以自定義段落,但這似乎不太方便 – Neat

回答

1

並非所有的攤販方法在每一種語言的支持,從什麼文件快速查找稱,CompanyAddress提供商都在fa_IR本地化

+0

我在哪裏可以找到支持哪些提供者? –

+1

@AB.Developer [here](https://github.com/fzaninotto/Faker#language-specific-formatters) – Neat

1

嘗試這種方式

$factory->define(App\Post::class, function() { 
    $faker = Faker\Factory::create('fa_IR'); 

    return [ 
     'post_title'  => $faker->sentence, 
     'post_content'  => $faker->paragraph, 
     'post_content_full' => $faker->paragraph(3), 
     'author'   => $faker->name 
    ]; 
}); 
+0

它有相同的結果。 –

+1

你可以按照這個https://github.com/fzaninotto/Faker/tree/master/src/Faker/Provider/fa_IR –

+0

有一個'text'提供者,但是當我使用'text()'方法時,它使用default本土化。 –