Laravelファクトリーとシーダーを作成するためのクイックガイド

王林
リリース: 2024-07-16 20:33:12
オリジナル
242 人が閲覧しました

A Quick Guide to Creating Laravel Factories and Seeders

学習演習、趣味のプロジェクト、現実世界のアプリケーションなど、自分のプロジェクト用に新しいファクトリーやシーダーを作成する必要があるときは、Laravel ドキュメントに戻ることがよくあります (毎回同じアクションをするのは退屈です)。このプロセスを簡単にするために、必要なときにいつでも参照できるガイドを作成することにしました。これにより、時間を節約し、広範なドキュメントを検索する必要がなくなりました。このガイドが他の人の役に立てば、それは素晴らしいことです!

ユーザー/投稿の関係があると仮定しましょう。つまり、各ユーザーは 1 つ以上の投稿を持つことができ、各投稿は 1 人のユーザーに属します。
工場とは何ですか?

Laravel のファクトリーは、アプリケーションのテストデータを生成するクラスです。これはローカル開発およびステージング環境に役立ち、多くの利点をもたらします。 Laravel では、モデルごとにファクトリーを作成できます。
シーダーとは何ですか?

Laravel のシーダーは、シード クラスを使用してデータベースにデータを入力するために使用されます。これは、テスト目的で特に役立ちます。
新しい工場の生成

新しいファクトリーを作成するには、次のコマンドを実行します:

phpArtisan make:factory PostFactory

ファクトリ クラスは、database/factories ディレクトリの下にあります。以下はファクトリーを定義する例です:

public function definition(): array
{
    return [
        'title' => $this->faker->sentence,
        'content' => $this->faker->paragraph,
        'user_id' => User::factory(),
    ];
}
ログイン後にコピー

シーダーの生成

新しいシーダーを作成するには、次のコマンドを実行します:

php 職人 make:seeder PostSeeder

シーダー クラスは、database/seeders ディレクトリの下にあります。このクラス内の run 関数の例を次に示します:

public function run(): void
{
    Post::factory()
        ->count(20)
        ->create();
}
ログイン後にコピー

同じディレクトリに、DatabaseSeeder クラスがあります。すべてのシーダーが含まれていることを確認してください:

public function run(): void
{
    // \App\Models\User::factory(10)->create();

    // \App\Models\User::factory()->create([
    //     'name' => 'Test User',
    //     'email' => 'test@example.com',
    // ]);

    $this->call([
        PostSeeder::class,
        ..,
        ..
    ]);
}
ログイン後にコピー

移行の実行とデータベースのシード

まず、データベースの移行を実行します。

php 職人の移行

次に、データベースをシードします:

php 職人 db:seed

これで、テスト データが準備されました。お楽しみください!

元々は私のブログに投稿されました!

以上がLaravelファクトリーとシーダーを作成するためのクイックガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!