順序付きリストを生成する


html

 悩み事

Bladeテンプレートで順序付きリストが欲しい

 解決方法

HTML::ol() メソッドを利用します

メソッドにアイテムのリストを渡します 連想配列を渡した場合、配列の値が利用されます

{{HTML::ol(['a', 'b', 'c'])}}

単純なリストが生成されます

<ol>
    <li>a</li>
    <li>b</li>
    <li>c</li>
</ol>

要素が配列の場合は、サブリストが生成されます

// $list
$list = [
    'one',
    'two',
    [
        'sub-one',
        'sub-two',
    ],
];
return \View::make('thebladeview', ['list' => $list]);

Bladeテンプレートに以下のコードがある場合:

{{HTML::ol($list)}}

次の様に生成されます

<ol>
    <li>one</li>
    <li>two</li>
    <li>
        <ol>
            <li>sub-one</li>
            <li>sub-two</li>
        </ol>
    </li>
</ol>

サブリストにタイトルを持たせる場合は、 連想配列の配列キーを利用します

// $list
$list = [
    'one',
    'two',
    'three' => [
        'sub-one',
        'sub-two',
    ],
];
return \View::make('thebladeview', array('list' => $list));

Bladeテンプレートに以下のコードがある場合:

{{HTML::ol($list)}}

次の様に生成されます

<ol>
    <li>one</li>
    <li>two</li>
    <li>three
        <ol>
            <li>sub-one</li>
            <li>sub-two</li>
        </ol>
    </li>
</ol>

リストに属性を追加する場合は、HTML::ol()メソッドの第二引数に配列で指定します

{{HTML::ol(['a', 'b'], ['class' => 'mylist'])}}

属性classが追加されます

<ol class="mylist">
    <li>a</li>
    <li>b</li>
</ol>

 アドバイス

  1. リストの値はエスケープされます
  2. 第二引数 $attributes, トップレベルのリストに適用されますが、サブリストを持っている場合、それらには属性が含まれません

Author:Chuck Heintzelman

Editor and Translator:Yuuki Takezawa