Laravel Fakerで一時的に言語を切り替える方法

Posted: 2022.12.04 / Category: PHP / Tag: Laravel
LaravelにはFakerという機能が組み込まれていて、これはダミーデータをランダムで生成する大変便利なものです。
今回は設定ファイルは日本語にしているけど、一部カラムは英語で登録したいといった場合に切り替える方法をご紹介します。
Sponsored Link
基本設定
ベースの言語設定はconfigファイルで行います。
日本語ならja_JP
ですね。
config/app.php
'faker_locale' => 'ja_JP',
ファクトリーファイルの設定
ファクトリーファイルで一部のカラムを英語に切り替えるように設定してみましょう。
\Faker\Factory::create('en_US')
を変数に保持しておいて、英語にしたいカラムはこのFakerから生成するようにします。
database/factories/UserFactory.php
<?php declare(strict_types=1); namespace Database\Factories; use Illuminate\Database\Eloquent\Factories\Factory; class UserFactory extends Factory { public function definition() { $enFaker = \Faker\Factory::create('en_US'); return [ 'name' => fake()->name(), 'en_name' => $enFaker->name(), ]; } }