如何使用Faker将一个城市带入一个特定的国家


How to get a city inside a specific country with Faker

我正在使用Laravel 5中的Faker扩展来填充我的数据库。

我有"国家"answers"城市"表,所以我称之为

$faker->country

但是我怎样才能得到一个在国内的城市呢?

我不希望"波哥大"属于"EEUU"。

您可以制作一个生成器,并只添加该国家/地区的提供商(可以在此处找到它们的列表):

$faker = new Faker'Generator();
$faker->addProvider(new Faker'Provider'en_AU'Address($faker));
$faker->state; // will give you only Australian states

如果可用的提供商没有满足您的特定需求,您可能需要创建一个自定义提供商。

在Laravel工厂中,这应该可以做到。

use Faker'Provider'en_AU'Address;
    /**
     * Define the model's default state.
     *
     * @return array<string, mixed>
     */
    public function definition()
    {
        return [
            'country' => $this->faker->country(),
            'city' => $this->faker->city(),
            'state' => Address::state(),
        ];
    }