1.3. テンプレートデータ

setData()メソッドに配列またはstdClassオブジェクトを渡してTemplateにデータコレクションをアサインします。

$tpl->setData([
    'items' => [
        [
            'id' => '1',
            'name' => 'Foo',
        ],
        [
            'id' => '2',
            'name' => 'Bar',
        ],
        [
            'id' => '3',
            'name' => 'Baz',
        ],
    )
]);

setData()メソッドは、Templateオブジェクトの既存のデータをすべて上書きします。

一方、addData()メソッドは、任意のiterableデータを既存のTemplateデータにマージします。

$tpl->addData([
    'title' => 'My Items',
]);

そうすると、テンプレート内でデータ要素を$thisのプロパティのように使うことができます。

<p>{{h $this->title}}</p>
<ul>
    {{ foreach ($this->items as $id => $name): }}
    <li id="{{a $id}}">{{h $name }}</li>
</ul>