Как я могу создать случайное имя с помощью форматировщиков Faker в Laravel?

Итак, я генерирую поддельные данные, используя структуру Faker.

<?php

/** @var \Illuminate\Database\Eloquent\Factory $factory */

use App\Paciente;
use Faker\Generator as Faker;

$factory->define(Paciente::class, function (Faker $faker) {
    return [
        'nm_paciente' => $faker->name,
        'data_nascimento' => $faker->date(),
        'email' => $faker->email,
        'sexo' => random_int(1, 2),
        'cidade_id' => random_int(1, 7),
        'estado_id' => random_int(1, 27),
        'status_id' => random_int(1, 2)
    ];
});

Но теперь мне нужно сгенерировать бразильские португальские (pt_BR) имена с помощью средств форматирования Faker, и я не знаю, как это сделать. Я пытался примерить это, но не работал. Может ли кто-нибудь помочь мне с этим?


person Edgard Bertelli    schedule 22.01.2020    source источник


Ответы (2)


Faker также поддерживает несколько локалей. Новое в версии 3.0.0.

from faker import Faker
fake = Faker(['it_IT', 'en_US', 'ja_JP'])
for _ in range(10):
    print(fake.name())

# 鈴木 陽一
# Leslie Moreno
# Emma Williams
# 渡辺 裕美子
# Marcantonio Galuppi
# Martha Davis
# Kristen Turner
# 中津川 春香
# Ashley Castillo
# 山田 桃子

Проверить документацию

person tarek suvo    schedule 03.01.2021

Вы можете использовать addProvider, чтобы назначить определенный язык для элемента.

$factory->define(Paciente::class, function (Faker $faker) {
   $faker->addProvider(new \Faker\Provider\pt_BR\Person($faker));

   return [
    'nm_paciente' => $faker->name, // Portuguese  name

Если вы хотите, чтобы все от Faker отображалось на португальском языке, вы можете настроить его в своем файле app.php следующим образом:

'faker_locale' => 'pt_BR',

Надеюсь это поможет

person Watercayman    schedule 22.01.2020