はじめに
初心者向けです。
最後にメソッド一覧載せておきます。
またLaravel11での実装になります。
Factoryを使うにあたって
流れは、
【Seederでデータを探しこむ際にFactoryを使ってダミーデータを入れていく】
ダミーデータでなければSeederだけでデータの一括挿入は可能。
手動で書く必要はあるので少し手間ですが画面やSQLで登録するより
一度書いてしまえば簡単にいつでもデータの挿入ができるので便利です。
※今回はダミーデータになるのでSeederは割愛します。
Seederの生成
php artisan make:seeder テーブル名Seeder
もしくは
./vendor/bin/sail artisan make:seeder テーブル名Seeder
※テーブル名は最初大文字から
上記のコマンドでSeederが作成された。
database/seeder/ここ
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use App\Models\Eloquent\Sorting; // ← モデルをセット
class SortingsSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
Sorting::factory(10)->create(); // ←Factoryを使う準備(今回は10件やっていきます)
}
}
上記でSeederは完了!
次にFactoryを生成する。
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory; // ←ここ忘れずに
class テーブル名Factory extends Factory
{
public function definition()
{
return [
'user_id' => 1, // 固定文字可能
'title' =>faker->text(30), // 30文字のテキストをランダムに
'name' =>fake()->name(), // 名前をランダムに
];
}
}
このreturnの中はテーブル定義で使い分けてくださいまし。
またfakeの使えるメソッドについては最後にまとめておきます。
これでfactoryのセットも完了です!
全部を動かさず、指定してSeederを動かす場合
php artisan db:seed --class=sortingsSeeder
または
./vendor/bin/sail php artisan db:seed --class=テーブル名Seeder
全部のSeederを動かす場合
php artisan db:seed
または
./vendor/bin/sail php artisan db:seed
factoryのメソッド
※右の機能はすべてランダムになります。
fake()->boolwan();
このように使う。
メソッド名 | 機能 |
---|---|
boolean( ) | 真偽値 |
randomNumber( ) | 整数値 |
randomFloat( ) | 実数値 |
numberBetween(最小値,最大値 ) | 引数の間の数値 |
randomHtml(階層,最大エレメント数) | 階層はタグのネストの深さ、エレメントはタグの数 |
shuffle( 配列 ) | 配列の要素 |
randomLetter( ) | アルファベット |
word( ) | 英単語 |
text( 文字数 ) | 最大文字数が指定した数 |
sentence( ) | 一文 |
paragraph( ) | 一段落のテキスト |
emoji | 絵文字 |
name( ) | 名前 |
firstName( ) | ファーストネーム |
firstNameMale( ) | 男性のファーストネーム |
firstNameFemale( ) | 女性のファーストネーム |
lastName( ) | ラストネーム |
country | 国名 |
state( ) | 州 |
city( ) | 街 |
address( ) | 住所 |
postcode( ) | 郵便番号 |
latitude( ) | 緯度 |
longitube( ) | 経度 |
phoneNumber( ) | 電話番号 |
date( ) | 年月日 |
time( ) | 時分秒 |
dateTime( ) | 日時 |
email( ) | メールアドレス |
userName( ) | ユーザー名 |
password( ) | パスワード |
domainName( ) | ドメイン |
url( ) | URL |
hexcolor( ) | 色を表す16進数 |
rgbcolor( ) | RGBの各値 |
colorName( ) | 色名 |
locale( ) | ロケール(jaなど) |