開発環境
- Laravel5.4
- Vagrant(Homestead)
- Windows(sequelProのためMacも使う)
目的
Laravelを使ってアプリ開発を行うための個人的な備忘録です。
操作フロー
-
モデルとマイグレーションの作成を行う
// モデルの作成(モデル名はパスカルケースで単数表記を推奨) php artisan make:model Http/Models/モデル名 // マイグレーションの作成(テーブル名はスネークケースの小文字で複数表記を推奨) php artisan make:migration create_テーブル名_table --create=テーブル名
-
テーブルの設計を考え、1で作成したマイグレーションファイルに記述する
- sequelProのマイグレーション作成プラグインの利用がオススメです
-
マイグレーションファイルを実行しテーブルを作成する(※仮想開発環境で実行する)
php artisan migrate
-
コントローラーを作成する(※不要な場合は省略)
// テーブル名はパスカルケースの複数表記を推奨 php artisan make:controller [テーブル名]Controller
-
テストデータを作成する(※不要な場合は省略)
-
作成
// シーディングファイルの名称はパスカルケースで複数表記を推奨 php artisan make:seeder [テーブル名]TableSeeder
-
ファイルの記述(サンプル)
// サンプル // テストデータに日本語が入ってくる $faker = Faker\Factory::create('ja_JP'); for ($i = 0; $i < 10; $i++) { App\[モデル名]::create([ 'uuid' => $faker->text(32), 'created_at' => $faker->dateTime('now'), 'updated_at' => $faker->dateTime('now'), ]); }
-
DatabaseSeederに実行コードを記述
public function run() { $this->call(UsersTableSeeder::class); $this->call(PostsTableSeeder::class); $this->call(CommentsTableSeeder::class); }
-
シーダーファイルの実行
// DatabaseSeederを実行する php artisan db:seed // 特定のクラスのシーダーのみを実行する場合 php artisan db:seed --class=実行するシーダークラス名
-
-
テーブルデータに合わせてModelのデフォルト設定を変更する
protected $table = 'hoge_data'; protected $primaryKey = 'hoge'; public $timestamps = false; // Carbonインスタンスへ自動変換したいカラムを指定する protected $dates = ['created_at', 'updated_at', 'deleted_at'];
-
Eloquent補完用のデータを生成(※仮想開発環境で実行する)
// _ide_helper_models.php内に予測変換用のコメントが作成される // そのコメントをコピーし、作成したモデルクラスのところに貼り付ける php artisan ide-helper:models
-
ルーティングに記載する
Route::post('/hoge','[コントローラー名]@メソッド名');
-
リクエストのバリデーションクラスを用意する
php artisan make:request HogeRequest
-
テスト用クラスを用意する
// --unitを付けるとUnitディレクトリに生成する // phpunitコマンドでテストを実行する // test◯◯というメソッドがテスト対象となる(◯◯は任意の名前を付けることが可能) php artisan make:test HogeDataTest
参考
- マイグレーションファイルの修正(データ型の変更)
- マイグレーションファイルのエラー対策
- マイグレーションの詳細
- モデルのデフォルト
- マイグレーションで作成するテーブルの文字コード(照合順序など)
- Laravel 5.4でWeb APIを作る
- Laravel 5.4 で手軽にテストを書こう!