Laravel モデルを10分でサクッと作る

こんにちは。今回はLarvelで素早くモデルを作成する方法をお伝えしようと思います。色々なオプションを駆使するとかなり高速にモデルを作成することができるようになります。

やること

ブログ記事を表すArticleモデルを作成し、データを取得するところまでやります。

モデルとマイグレーションを作成する

artisan make:modelコマンドでArticleモデルを作成します。このときマイグレーションも同時に作成してしまいましょう。–migrationオプションをつけると対応するテーブルを作るマイグレーションが作成されます。

$ php artisan make:model Article --migration

Model created successfully.
Created Migration: 2021_10_28_105844_create_articles_table

マイグレーションを編集

マイグレーションを編集しましょう。今回はtitle, content, categoryの3項目を作ります。

    Schema::create('articles', function (Blueprint $table) {
            $table->id();
			      $table->string('title');
			      $table->string('content');
			      table->string('category');
            $table->timestamps();
    });

マイグレーションを実行

マイグレーションを実行してarticlesテーブルを作成します。

$php artisan migrate

ファクトリーを作成する

ファクトリーを使ってダミーデータを作っていきます。まずはartisan make:factoryコマンドでfactoryクラスを生成します。このとき対応するモデルを指定しておくと楽です。–model=Articleオプションを付けてください。

$ php artisan make:factory ArticleFactory --model=Article

definition内にfakerでランダム値を指定します。

    public function definition()
    {
        return [
            'title' => $this->faker->word(),
            'content' => $this->faker->text(),
            'category' => $this->faker->word(),
        ];
    }

作成したファクトリーをSeederから実行します。database/seeder/DatabaseSeeder.phpに以下のコードを記述します。countメソッドに作成したいデータ件数を指定します。

  use App\Models\Article;
  
   public function run()
    {
        $user = Article::factory()->count(5)->create();
    }

ファクトリーを実行してデータを登録する

seederを実行します。

php artisan db:seed

データを登録することができました。

モデルを使ってみる

最後にtinkerでモデルを使ってみましょう。tinkerを起動します。

php artisan tinker

Article::findでデータを取得してみます。

>>> use App\Models\Article;
>>> Article::find(1);
=> App\Models\Article {#4588
     id: "1",
     title: "molestiae",
     content: "Qui sint totam et incidunt. Ipsam corporis rerum quaerat non voluptatem aliquid quo illo. Tempore et reprehenderit dolore fugit explicabo dicta dicta nesciunt.",
     category: "sunt",
     created_at: "2021-10-28 11:24:18",
     updated_at: "2021-10-28 11:24:18",
   }

無事に取得することができました。

まとめ

今回はモデルをサクッと作る方法をお伝えしました。artisanを巧く使うと手順を省略できるので良いですね。

Laravel

Posted by kobainmac