いつからいつまでとか、◯◯のうちいずれか等、範囲指定のあるダミーデータを作成する。
Fakerを日本語化する
config/app.php
'faker_locale' => 'ja_JP',
ダミーデータに日本語が含まれる場合はapp.phpのfaker_locale
を日本語にする。
Factoryを作成する
% php artisan make:factory RecordFactory --model=Record
ファクトリを作成する。
モデルを指定しておけば、ファクトリファイルにuse App\Models\モデル名;
が自動で書き足される。
ファクトリファイルを編集(Fakerを使用)
database/factories/RecordFactory.php
use App\Models\Record;
use Illuminate\Database\Eloquent\Factories\Factory;
.
.
.
public function definition()
{
return [
//
'date' => $this->faker->dateTimeBetween($startDate = '-3 week', $endDate = 'now'), //追記
'sum' => $this->faker->randomElement([180,150,120,90,60,30,15]), //追記
'subject' => $this->faker->randomElement(['国語','数学','英語','国語,数学','国語,英語','国語,数学,英語','数学,英語']), //追記
'user_id' => $this->faker->numberBetween(1,3), //追記
];
}
数字の範囲指定はnumberBetween
、日付の範囲指定はdateTimeBetween()
、◯◯のうちいずれか、という選択はrandomElement([])
を使用する。
DatabaseSeeder.phpを編集する
database/seeders/DatabaseSeeder.php
public function run()
{
// \App\Models\User::factory(10)->create();
//Recordモデルを使って15個のデータを登録する
\App\Models\Record::factory(15)->create(); //←ここ追記
}
php artisan db:seedを実行する。
% php artisan db:seed
これで範囲指定のあるダミーデータ作成ができる。