LoginSignup
1
2

More than 3 years have passed since last update.

テンプレートのディレクティブ基本

Last updated at Posted at 2020-03-18

テンプレートでよく使うディレクティブ

@section
@yield
@component
@slot
@each

@section@yield

まずはこの2つの解説です。
テンプレートを使う上で欠かせないのが、この2つ。
役割を大雑把に説明すると、
@section ----> 場所を指定
@yield ----> セクションを表示

ファンタジー風にするならば

@section ----> 呪文を用意
@yield ----> 呪文を唱える
こんな感じ。

index.php
@section ('名前'
こんにちは
@endsection

ko_template.php

@yield('名前')


こんにちは

となります。

@component@slot

まずcomponentとはレイアウトの中のレイアウトのようなものです。
親レイアウトの中からさらに、タイトルだけとかフッターだけとかのレイアウトのことです。

@slotはcomponent内に変数を使ったならば、その変数に代入するためのディレクティブです。

使い方は、componentを作ったら親レイアウト内で

index.php

@component('フォルダ名.componentを書いたファイルの名前')

 @slot('componentの中で変数を指定したもののクラスやid')
 変数に代入したいこと
 @endslot

@endcomponent

とすれば、componentが表示されます。

@eachについて

@eachは、繰り返したいものをテンプレート化したいときに使います。
まずは@eachを使ってどのように表示したいのかを書いたファイルを作ります。
ここではリスト形式で作ってみます

use_each.php

<li>
名前{{$item['name']}}
/メール{{$item['mail']}}
</li>

次に、use_eachで使いたい配列をcontrollerで書いてあげます。

controller.php

public_function index () {

    $data = [
      ['name' => '山田太郎', ''mail' => 'tarou@yamada'],
      ['name' => '山田桜', ''mail' => 'sakura@yamada'],
      ['name' => '山田久美子', ''mail' => 'kumiko@yamada']
    ]


    return view('フォルダ名.index', ['data' => $data]);

}

そして親テンプレート内で

index.php

@section('名前')

 <ul>
 @each('フォルダ名.use_each', controllerで指定したuse_eachで使いたい配列, 第二引数を代入したいuse_each内の変数
 </ul>


とすると、


・名前:山田太郎/メール:tarou@yamada
・名前:山田桜/メール:sakura@yamada
・名前:山田久美子/メール:kumiko@yamada


と表示されます

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2