こんにちは。YOSHITAKA(@YOSHITA19704216)です。
- モデルのカラムを転記するのが早くなります。
Contents
マイグレーションファイルからモデルを簡単に作る
モデルとマイグレーションのファイル作成と連携を素早くできるようになります。
eloquent-model-generatorでモデルを早く作る
eloquent-model-generatorはDB中の定義からEloquentモデルを生成するライブラリです。
まずは準備します。
- composer require krlove/eloquent-model-generator –dev
- # モデル名を指定(テーブル名はモデル名の複数形)
php artisan krlove:generate:model User
- # モデル名とテーブル名を指定
php artisan krlove:generate:model User –table-name=user
これだけでリレーション、fillableをはじめとした様々なオプション付きのモデルが生成されます。
テーブル名をコピペして、コマンドを量産して叩くだけでも便利です。
configを使うとさらに便利になります。
<?php
return [
‘namespace’ => ‘App\Models’, // namespaceの冠詞
‘base_class_name’ => \Illuminate\Database\Eloquent\Model::class, // Modelの継承元
‘output_path’ => ‘/full/path/to/output/directory’, // Modelの出力先ディレクトリ
‘no_timestamps’ => true, // created_at, updated_atを使わないか使うかの設定
‘date_format’ => ‘U’, // datetimeカラムからデータを取得する時のフォーマット。nullだとCarbon
‘connection’ => ‘other-connection’, // 使い方不明
‘backup’ => true, // 元々あるモデルを壊さないか否か
];
DB中のテーブルを全て読み取り、全てに対応するコマンド
- artisan krlove:generate:all-models
実行すると、DB中のテーブルを全て読み取り、全てに対応するEloquentモデルが生成されます。
まとめ
今回は Laravelのマイグレーションからモデルの作成ついてお伝えしました。
実務で使うときにこんな便利なライブラリがあると思ったのでお伝えしました。
※プログラミングは習得中ですので、参考程度に記事を読んでください。