Laravelのモデルとマイグレーションを同時に作成する方法

Laravelのモデルを作成するartisanコマンドに–migrationオプションをつけると同時にマイグレーションファイルも生成してくれます。

MEMO

このコマンドは、Laravel 5.1以降の環境で使えます。

https://laravel.com/docs/7.x/eloquent#defining-models

試しにBookモデルを生成するartisanコマンドに–migrationオプションを追加して実行してみます。

コマンド
php artisan make:model Book --migration

Bookモデルクラスとbooksテーブルのマイグレーションファイルが作成されました。

app/Book.php
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Book extends Model
{
    //
}
MEMO

Laravel 8 以降のバージョンでは、モデルクラスの生成先は app/Models ディレクトリ下になります。

database/migrations/xxxx_xx_xx_xxxxxx_create_books_table.php
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateBooksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('books', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('books');
    }
}

効率的なだけでなく、モデル名に合わせてテーブル名(モデル名の複数形)をつけてくれるので、タイポなどの人為的なミスも防ぐことができます:)

1 Comment

現在コメントは受け付けておりません。