LoginSignup
7
4

More than 5 years have passed since last update.

Laravel チートシート マイグレーション・モデル 編

Last updated at Posted at 2019-02-20

マイグレーション - php artisan

新規テーブル追加用のマイグレーションファイル作成

php artisan make:migration create_%table_name%_table --create=%table_name%

既存テーブル カラム追加用のマイグレーションファイル作成

※ ファイル名にはカラム追加の意味add_columnsだけ記載すればいいと思う(何のカラムを追加したかとか入れると多く追加しとき対応できない)
※クラス名重複を避けるため yyyymmdd を追加するのがいいと思う

php artisan make:migration add_columns_to_%table_name%_yyyymmdd --table=%table_name%

既存テーブル カラム変更

php artisan make:migration change_columns_of_%table_name%_yyyymmdd  --table=%table_name%

ファイル内での記述は、

    $table->string('book_name', 255)->nullable()->change();
    $table->renameColumn('company', 'publish');

    $table->dropColumn('price');

マイグレーション 実行

マイグレーションファイルはどんどん増えていくので、通し番号で階層管理する
実行するときは、下記のようにフォルダ指定する

    php artisan migrate --path=database/migrations/1

マイグレーション 1回 戻す

php artisan migrate:rollback --path=database/migrations/1

マイグレーション - 問答無用でお世話になる型たち

    $table->string('email', 255);
    $table->text('description');

    $table->integer('member_id');
    $table->smallinteger('birth_year');
    $table->tinyinteger('birth_month');

    $table->date('birthday');

    $table->boolean('is_sendable');

マイグレーション - その他の型たちはこちらへ

マイグレーション - カラム属性

外部キー

    //カラムの定義と外部キー制約の定義で2行になる
    //参照先のIDの型と合わさないとエラーになる
    $table->unsignedInteger('book_id');  
    $table->foreign('book_id')->references('id')->on('books');

Null許可

    $table->string('book_name', 255)->nullable();

ユニーク

    $table->string('atuthor')->unique();

デフォルト値

    $table->integer('price')->default('1000')

created_at/updated_at/deleted_at

    $table->timestamps();
    $table->softDeletes();

正負無し

    $table->integer('book_no')->unsigned();
        または
    $table->unsignedInteger('book_no');

コメント

//いつ追加したか、フラグだったら内容入れとくと、
//テーブル定義書をリバースエンジで作るときも、運用も楽じゃないかなと思う
$table->tinyinteger('is_recess')->comment('2019/02/22, 休止フラグ, 0:稼働中 1:休止中')

モデル 作成

php artisan make:model books

ソフトデリート

    use Illuminate\Database\Eloquent\SoftDeletes;
    class Books extends Model
    {
        use SoftDeletes;

    }
7
4
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
7
4