【Laravel】viewで表示の処理を分ける

viewファイルの作成

MVCモデルを採用したフレームワークでは、ルーティングの処理と見た目を作るビューの処理を分ける。

 

 

 

bladeとは

laravelのviewファイルが採用している、テンプレートエンジン。

  • Laravelのビュー作成にはBladeテンプレートエンジンが使われる。結果Bladeビューとなる。
  • ビューの中にPHPを直接記述できる。
  • Laravelのビューはresources/viewsディレクトリにある。
  • 拡張子は.blade.phpとなる。

 

 

viewを呼び出す

ルーティングにより呼び出すviewを指定する。

view(' ファイル名 ') のように、.blade.php以前のファイル名のみ記述する。

 

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ファイル

<body>
    <p><?php echo $category;?>のリスト</p>
</body>

これで$categoryを出力できるが、テンプレートエンジンに従った記述をしたほうがベター。PHPを知らない人にもviewファイルを見やすくする。

bladeでは以下のように記述する。

<body>
    <p>{{ $category }}のリスト</p>
</body>
 
 
if構文の例
<body>
    <p>{{ $category }}のリスト</p>  

    @if ($category == 'news')
        <p>本日のニュースを配信します</p>
    @endif
</body>