Laravel のビューテンプレート Blade の使い方
LaravelではビューテンプレートとしてBladeを利用します。Bladeファイルは以下のフォルダに配置します。
\{Laravelプロジェクト}\resources\views
拡張子は.blade.php
です。
Bladeの利用方法
welcome.blade.php
を表示したい場合、ルーティングでは以下のように記述します。
Bladeにパラメータを渡す
Bladeにパラメータを渡す場合はview()
の第2引数に連想配列で指定します。
または
Blade側では連想配列のキーが変数名となります。上記の場合、Bladeファイルでは$title
で扱います。
Blade内でのPHPの記述
PHPコードを記述するとき、通常の記述方法<?php ?>
も利用可能です。しかし、通常は以下のようなBlade特有の記述方法を用います。
@
繰り返しや条件分岐などを@
をつけて記述します。{}
や:
は不要です。
{{ }}
{{ }}
で囲むと変数の出力が可能です。<php echo ?>
や<?= ?>
と同じですが、htmlspecialchars()
を通してくれます。
また、コメントは{{-- コメント --}}
で記述します。
他のビューテンプレートの読み込み
@include()
を使って他のビューテンプレートを読み込めます。
サブフォルダにあるファイルはフォルダ名.ファイル名
とします。
変数の受け渡し
読み込み元で使用可能な変数が読み込み先でも利用可能です。追加で変数を渡したい場合は、第2引数に連想配列で指定します。
公開フォルダへのURLを生成する
\{Laravelプロジェクト}\public
配下に配置したファイルのURLを生成するには、ヘルパー関数のasset()
を使用します。
\laravel-prj\public\css\style.css
へのURLを生成する場合
サイト内ページへのURLを生成する
URLを使った記述
ヘルパー関数のurl()
を使用します。引数のuriはルーティングで指定した値です。
URLにパラメータを渡す
url()
の第2引数に連想配列で指定します。
コントローラとアクションを指定したURLを生成する
コントローラとアクションを指定してURLを生成するには、ヘルパー関数のaction()
を使用します。
WebApiController
クラスのshow
アクションを指定する場合
Route::get("/show", "WebApiController@show");
を記述していないとエラーになります。
アクションにパラメータを渡す
action()
の第2引数に連想配列で指定します。
ビューテンプレートを継承する
共通のレイアウトを定義した親テンプレートを作成し、継承した子テンプレートでセクションを上書きしたり挿入することができます。
親テンプレートの継承には@extends
を使用します。
コンテンツの挿入
親テンプレートの@yield
で指定したセクション名に対して子テンプレートで内容を記述します。
子テンプレートでは@section
を使って挿入する内容を記述します。
コンテンツの追加
親テンプレートで@section
~@show
に表示する内容を記述します。
子テンプレートで親テンプレートと同一のセクションに@parent
を記述することで、親のセクションと子のセクションが表示されます。
以下のように表示されます。
分かりやすい
特に最後の画像のような矢印で表現した絵は分かりやすい
ただし変数の渡し関係が初心者は分からないと思った
ご参照ありがとうございます。
備忘録的なブログのため、初心者向けではないので難しい部分もあるかと思います。
ただ、分かりやすく書きたい気持ちはありますので、貴重なご意見ありがとうございます!!
該当箇所は確かに、文章も分かりづらいですね。。。