0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

複数のダミーデータ挿入に便利。LaravelでFactoryを使う。Factoryで主要なメソッド一覧掲載

Posted at

はじめに

初心者向けです。
最後にメソッド一覧載せておきます。

また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など)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?