【Laravel】viewで表示の処理を分ける
viewファイルの作成
MVCモデルを採用したフレームワークでは、ルーティングの処理と見た目を作るビューの処理を分ける。
bladeとは
laravelのviewファイルが採用している、
- Laravelのビュー作成にはBladeテンプレートエンジンが使われる。結果Bladeビューとなる。
- ビューの中にPHPを直接記述できる。
- Laravelのビューは
resources/viewsディレクトリ
にある。 - 拡張子は
.blade.php
となる。
viewを呼び出す
ルーティングにより呼び出すviewを指定する。
view('
Route::get('/blog/' , function(){
return view(' ファイル名 ');
});
変数を渡す
例:変数に合わせてviewの表示内容を変えたい場合
Route::get('/archives/{category}/',function($category){
return view('category', ['category'=>$category]);
});
functionに渡っている$categoryという変数を、viewにも渡さなければいけない。
そこでview( )内にパラメーターを2つ渡す。
['category'=>$category] ※同じ名前にすることが多い。
このように記述することで$categoryという変数がviewに渡る。
その上でviewに$categoryを組み込む。
category.blade.phpファイル
これで$categoryを出力できるが、テンプレートエンジンに従った記述をしたほうがベター。PHPを知らない人にもviewファイルを見やすくする。
bladeでは以下のように記述する。
<body>
<p>{{ $category }}のリスト</p>
</body>
if構文の例
<body>
<p>{{ $category }}のリスト</p>
@if ($category == 'news')
<p>本日のニュースを配信します</p>
@endif
</body>