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を巧く使うと手順を省略できるので良いですね。
ディスカッション
コメント一覧
まだ、コメントがありません