#テンプレートでよく使うディレクティブ
@section
@yield
@component
@slot
@each
#@sectionと@yield
まずはこの2つの解説です。
テンプレートを使う上で欠かせないのが、この2つ。
役割を大雑把に説明すると、
@section ----> 場所を指定
@yield ----> セクションを表示
ファンタジー風にするならば
@section ----> 呪文を用意
@yield ----> 呪文を唱える
こんな感じ。
@section ('名前')
こんにちは
@endsection
@yield('名前')
こんにちは
となります。
#@componentと@slot
まずcomponentとはレイアウトの中のレイアウトのようなものです。
親レイアウトの中からさらに、タイトルだけとかフッターだけとかのレイアウトのことです。
@slotはcomponent内に変数を使ったならば、その変数に代入するためのディレクティブです。
使い方は、componentを作ったら親レイアウト内で
@component('フォルダ名.componentを書いたファイルの名前')
@slot('componentの中で変数を指定したもののクラスやid')
変数に代入したいこと
@endslot
@endcomponent
とすれば、componentが表示されます。
#@eachについて
@eachは、繰り返したいものをテンプレート化したいときに使います。
まずは@eachを使ってどのように表示したいのかを書いたファイルを作ります。
ここではリスト形式で作ってみます
<li>
名前:{{$item['name']}}
/メール:{{$item['mail']}}
</li>
次に、use_eachで使いたい配列をcontrollerで書いてあげます。
public_function index () {
$data = [
['name' => '山田太郎', ''mail' => 'tarou@yamada'],
['name' => '山田桜', ''mail' => 'sakura@yamada'],
['name' => '山田久美子', ''mail' => 'kumiko@yamada']
]
return view('フォルダ名.index', ['data' => $data]);
}
そして親テンプレート内で
@section('名前')
<ul>
@each('フォルダ名.use_each', controllerで指定したuse_eachで使いたい配列, 第二引数を代入したいuse_each内の変数)
</ul>
とすると、
・名前:山田太郎/メール:tarou@yamada
・名前:山田桜/メール:sakura@yamada
・名前:山田久美子/メール:kumiko@yamada
と表示されます