2021/03/02
MVCモデルはフレームワークを利用した開発をする際に用いられる開発手法の一つです。
LaravelもMVCモデルで設計されています。
今回はMVCモデルのコントローラについてエントリーします。
コントローラとは
コントローラはモデルとビューの橋渡しをする存在です。
主に2つの役割を持っています。
- ルートから受け取った情報をモデルに処理をお願いする
- モデルから受け取った情報をビューに表示する
具体的にはモデルからDBにアクセスし、取得したデータをコントローラで加工してビューに渡すと行ったことや、ビューからのデータをモデルに渡し、DBに保存をしたりします。
またバリデーション(データが正当かどうかを判断する機能)もコントローラに記述します。
作成手順
1.ルートに記述
コントローラを作成する前に、ルートに新しく作るコントローラを記述しておきます。
Route::get('hello','HelloController@getIndex');
Route::resource
を指定することでCRUDルーティングを一度に行うことができます。
(※記述がワンライナーだけで済みます)
// ワンライナーの記述で以下のメソッドを呼び出すことができます。
Route::resource('/message', 'MessageController');
Verb | URI | Action | 呼び出されるメソッド |
---|---|---|---|
GET | /message | index | MessageController@index |
GET | /message/create | create(新規作成) | MessageController@create |
POST | /message | store(保存) | MessageController@store |
GET | /message/{id} | show(詳細表示) | MessageController@show |
PUT/PATCH | /message/{id} | update(更新) | MessageController@update |
DELETE | /message/{id} | destroy(削除) | MessageController@destroy |
2.スケルトン作成
コントローラは artisan コマンドを使って作成します。
$ php artisan make:controller HelloController
// Route::resourceを指定する場合
$ php artisan make:controller HelloController --resource
コントローラはアッパーキャメルケースで記述するのがお作法です。
(※ちなみにアッパーで記述しなくても動きます。)
記法名 | 例 | 備考 |
---|---|---|
スネークケース | example_case | すべて小文字で複合語のスペースをアンダースコアで区切る |
ローワーキャメルケース | exampleCase | 先頭を小文字で書き始め、複合語のスペースをなくし要素の先頭は大文字にする |
アッパーキャメルケース(パスカルケース) | ExampleCase | 先頭を大文字で書き始め、複合語のスペースをなくし要素の先頭は大文字にする |
上記のコマンドを実行すると app/Http/Controllers/HelloController.php ファイルが作成されます。
3.中身を記述
artisanコマンドでスケルトンを作成すると、クラスは自動で生成されます。
以下のようにメソッドだけ追加します。
:
class HelloController extends controller
{
public function getIndex()
{
return view('hello');
}
}
コントローラからビューへの変数の受け渡しと展開方法については別の記事でまとめました。
コントローラについては以上です。
PHPフレームワーク Laravel入門 第2版
僕がはじめてLaravelを学習するために参考にしたサイトは、掌田津耶乃(しょうだつやの)さんの libro というサイトです。当時(2016年)、Laravel学習サイトの中でもこのサイトは群を抜いてわかりやすく説明されていたので、とても勉強になったのを覚えています。この本は掌田津耶乃さんが書いた本なので、わかりやすく解説されているだろうと kindle で購入しました。2020年8月の時点でいうと日本国内にて唯一の Laravel の良書と言っても良いかと思います。口コミでもLaravel本のロングセラー定番解説書として認知されています。当サイトではチュートリアル形式でLaravelを解説しているので、初心者の方はこの本とセットで学習されるといいと思います。しかし、かなりわかりやすく解説されているとはいえ、PHP中級者以上のスキルは必要です。PHP自体の知識が乏しい方は 独習PHP 第3版 をあわせて購入することをお勧めします。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。