I have a Post Model with these fields :
post_id post_title post_content post_content_full author
Now I want to use laravel sedders and model factories to create fake fa_IR
localized data and insert to posts
table.
For that I wrote this in database/factories/ModelFactory.php
:
$factory->define(AppPost::class, function (FakerGenerator $faker) { return [ 'post_title' => $faker->sentence, 'post_content' => $faker->paragraph, 'post_content_full' => $faker->paragraph(3), 'author' => $faker->name ]; });
Then I created a PostsTableSeeder
class like this :
use IlluminateDatabaseSeeder; class PostsTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run () { factory(AppPost::class, 5)->create(); } }
And in AppServiceProvider.php
added below codes to register
function :
$this->app->singleton(FakerGenerator::class, function () { return FakerFactory::create('fa_IR'); });
But After running the seed , laravel uses default locale (en_US
) and ignores fa_IR
.
I do not know what else to do.
Update:
Even I changed in DEFAULT_LOCALE
const vendor/fzaninotto/faker/src/Faker/Factory.php
to fa_IR
Nothing changed.
Advertisement
Answer
Not all faker methods are supported in every language, from what a quick lookup of the documentation says, the Company
and Address
provider are supported in the fa_IR
localization