2017-05-15 28 views
0

では動作しません。私は、これらの分野でのポストモデルを持っている:ローカライズ偽物工場がlaravel

post_id 
post_title 
post_content 
post_content_full 
author 

は今、私は偽物fa_IRローカライズされたデータを作成し、postsテーブルに挿入するためにlaravel seddersとモデル工場を使用します。そのために

私はdatabase/factories/ModelFactory.phpでこれを書いた:

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'); 
    }); 
$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クラスを作成しました

しかし、シードを実行した後、laravelはデフォルトのロケール(en_US)を使用し、fa_IRを無視します。

私は他に何をするか分かりません。

更新:

がでも私はvendor/fzaninotto/faker/src/Faker/Factory.phpfa_IRに何も変わっていないDEFAULT_LOCALEのconstに変更。

+0

はあなたでしfa_IRローカライズでサポートされている、ドキュメントの迅速な検索が言っていることから、すべての言語でサポートされるわけではありません。この方法を試してみてください' - > address()'メソッドを試してみてください。使用している関数が 'fa_IR'言語でサポートされていない場合もあります。 – Neat

+0

はい、アドレスを使用すると機能します。 'paraphraph'が' fa_IR'言語でサポートされていないことを意味しましたか? –

+0

悲しいことに、悲しいことですが、段落をカスタマイズすることは可能ですが、それはとても便利ではないようです。 – Neat

答えて

1

すべて偽物方法がCompanyAddressプロバイダは

+0

サポートされているプロバイダーはどこにありますか? –

+1

@A.B.Developer [こちら](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() 'メソッドを使用すると、デフォルトのローカリゼーション。 –