ぬにょす(挨拶)。
表題の通りですが、PHPフレームワークであるところのLaravelを使ってみようということで、やったこと・できたこと・できなかったこと等を自分の備忘録として残していきます。
#8の今回はLaravelのVueフロントエンドからAPI経由で基本的なCRUDを実装してみます。なお、話を簡単にするため認証ガードなどの余計なミドルウェアは挟みません。
モデルとコントローラーの作成
artisanコマンドで一気に作ります。
Code language: plaintext (plaintext)php artisan make:model -a --api Category
-a オプションを付与することでコントローラーやマイグレーションファイルなども作成します。–api オプションを付与することでフォーム出力用のアクション(create, edit)を省いたコントローラーを作成します。
マイグレーション
マイグレーション用のファイル(database/migrations/YYYY_MM_DD_hhmmss_create_categories_table.php)が作成されているので、テーブル作成処理を追加します。
Schema::create('categories', function (Blueprint $table){
$table->id();
/*追加*/$table->string('name');
$table->timestamps();
});
Code language: PHP (php)
artisan コマンドでマイグレーションを実行します。
Code language: plaintext (plaintext)php artisan migrate
モデル
複数代入を利用するために、カラムに関する制約を追加します。
$fillable プロパティで代入を許可するカラムを指定する方法と、$guarded プロパティで代入を禁止するカラムを指定する方法があります。今回は後者でやってみました。
コントローラー
index / 全件表示
モデルの all メソッドの結果をそのまま返します。
store / INSERT処理
リクエストされたデータでモデルを作成し、保存します。
update / UPDATE処理
モデルをリクエストデータで更新して、保存します。
destroy /DELETE処理
モデルの delete メソッドで削除します。
ルーティング
APIルートを追加します。コントローラーを artisan コマンドで作成したので、Route::apiResources メソッドを呼ぶだけで完了です。
php artisan route:list コマンドで Method と URI を確認し、Postman などから実行してみるとデータベースが更新されるはずです。
まとめ
artisan コマンドや Route::apiResource(s) メソッドなど、Laravel フレームワークが提供する機能を活用することで、最低限の機能は簡単に実装することができました。
実際にはバリデーションや例外処理、ルート保護なども必要になってくるでしょう。残念ながら私にはまだそこまでの知識はありません。もっとドキュメントを読んで、トライ&エラーを繰り返して、分かったことが増えてきたら備忘録として投稿したいと思います。
コメント