Laravelのview(ビュー)について一言で表すと、htmlのフロント部分を扱うところです。
プログラミングとデザインで扱うファイルが違うのがMVCのメリットなのですが、ビューは名前の通り見た目の操作、つまりデザインを扱う部分となります。
今回は、プログラミング初心者向けにビューの使い方について解説していきたいと思います。
Laravelではコントローラーに戻り値を設定すれば、ページを表示することが可能です。
しかし、このやり方は本来あるべきMVCの形から外れています。
ビューはMVCのVに該当する部分で、最終的な出力を扱う部分です。
MVCのCであるコントローラーがやるべきことは、モデルの呼び出しとビューへの受け渡しなどなど。
コントローラーとビューは切り離して構築していく必要があるのです。
というわけでフロント部分を出力させるためにはBladeテンプレートというものを利用しないといけないのです。
BladeテンプレートはHTMLベースで作られていて、HTMLのなかにPHPを埋め込むことができるテンプレートです。
BladeテンプレートはHTMLベース出力のイメージがしやすく、レイアウトを組んでいくのが楽ですね。
コントローラーにはビュー変数というものを準備します。
ビュー変数とは、テンプレートに埋め込む値のことで、Bladeテンプレートを利用する場合、データを要する必要があるのです。
そして、テンプレートにはデータを埋め込む場所だったり表示方法を定義するという役割分担となるのです。
ビュー変数は連想配列で定義します。
public function index()
{
$data = [
'msg' => 'こんにちは'
];
}
ビュー変数を定義した後は、テンプレートを呼び出して、変数を渡さないといけません。
テンプレートを呼び出すにはviewメソッドです。
viewメソッドはview(テンプレートのパス, ビュー変数)と定義します。
テンプレートのパスは「フォルダー名.ファイル名」というように.(ドット)で区切って記述します。
/hello/view.blade.phpを呼び出す場合はこのようになります。
public function index()
{
$data = [
'msg' => 'こんにちは'
];
return view('hello.view', $data);
}
テンプレートの場所は/resource/viewsのディレクトリ配下に準備し、コントローラー名/アクション名.blade.phpとするのが一般的です。
コントローラーの接尾辞であるControllerを削除してテンプレート名とするとよいでしょう。
view.blade.phpでビュー変数を表示させるためにはこのような記述となります。
<body>
{{$msg}}
</body>
ビュー変数を参照するためには{{…}}を利用します。
{{…}}の中は変数だけじゃなく関数を利用することもできます。
ビューはもっと作業を楽にするような使い方もいろいろあるのですが、基本については以上となります。
ビューの応用編についてはまた別の記事で紹介していきます。
次回はモデルの基本部分について解説していきます。
正社員という奴隷制度に中指を立てるWebエンジニアです。PHPが得意。繋がれた鎖を断ち切るために、自由を取り戻すために、プログラミングスキルを磨く日々です。プログラミングと個人でもできるビジネスについて、情報発信しています。