LaravelではPHPのスクリプトファイルで「テンプレート」を作成し、それを表示することができます。また「Blade」という独自の高機能なテンプレート機能も持っています。
これらを使い、画面表示の基本をマスターしましょう。
ビューについて
本格的なWebページを作成するためにはHTMLを使ってそのまま表示内容を記述できるような仕組みが必要でしょう。
こうした用途のために用意されているのが「テンプレート」です。テンプレートは、Laravelのビュー(View)を担当する重要な部品です。
先に述べたようにLaravelでは、Model-View-Controller(MVC)というアーキテクチャに基づいて設計がされています。
ビューは画面表示を担当する部分で、画面の表示に関数表示を簡単にわかりやすい形で作れるようにしています。そのために採用されているのが「テンプレート」です。
PHPでのテンプレートエンジン
テンプレートエンジンとは、HTMLコードを記述したファイルを別に用意しておきます。このファイルのことを「テンプレート」と呼びます。
一方でPHP側でのそのテンプレートに埋め込むデータを用意しておきます。テンプレートエンジンはそれらを結合してHTMLレスポンスを生成する仕組みです。
テンプレートエンジンを利用することでPHP処理で書かれたファイルとHTMLコードで書かれたファイルを分離することができ、PHPコード、HTMLコードそれぞれの可読性が向上します。
PHP言語に限れば、現在主流で使用されているものは3つあります。
- Smarty
- Symfony
- Blade
今回紹介するのはLaravelに同梱されている「Blade」です。
Bladeの使い方と基本
Laravelには「Blade」という独自のテンプレートエンジンが用意されています。このテンプレートの基本的な書き方を覚えましょう。そしてフォーム送信などの基本的な処理が行えるようになりましょう。
Bladeを使う
テンプレートファイルをresourse/viewsディレクトリに作成します。その際、拡張子は「blade.php」とします。拡張子は.phpですが、内容は通常のHTMLファイルと同じように作成します。
1 2 3 4 5 6 7 8 9 10 11 |
resouse/views/laravel.blade.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>laravelによるこんにちは</title> </head> <body> <h1>こんにちは!Laravel!</h1> </body> </html> |
テンプレートを表示させるルーティングを登録します。ここでは/laravelbladeというルーティングパターンで登録します。
1 2 3 4 |
routes/web.php Route::get("/laravelBlade", function() { return view("laravel"); }); |
view()関数を実行し、その戻り値をリターンします。そのview()関数の引数として渡すのが、先ほど作成した「blade.php」を取り除いた部分です。テンプレートファイル名がlaravel.blade.phpなので、引数として”laravel”を渡します。