重用模板片段
在共享的视图脚本路径里放置可重用的 partials ,重用性比较好
简介
Partial 视图助手被用来在它自己的变量范围内解析特定的模板。
主要用法是(解析)可重用的模板片段
不需要操心变量名的冲突。另外,它们可从特定的模块指定 partial 视图脚本。
Partial 的兄弟 PartialLoop 视图助手允许传递可迭代数据并为每个条目解析一部分
partials 的基本用法是在它自己的视图范围内解析一个模板的片段。
<?php // partial.phtml ?>
<ul>
<li>From: <?= $this->escape($this->from) ?></li>
<li>Subject: <?= $this->escape($this->subject) ?></li>
</ul>
可以这样从视图脚本里调用它:
<?= $this->partial('partial.phtml', array(
'from' => 'Team Framework',
'subject' => 'view partials')); ?>
解析结果如下:
<ul>
<li>From: Team Framework</li>
<li>Subject: view partials</li>
</ul>
使用 PartialLoop 来解析可迭代的(Iterable)的模型
<? // partialLoop.phtml ?>
<dt><?= $this->key ?></dt>
<dd><?= $this->value ?></dd>
添加下列 "model":
<?php
$model = array(
array('key' => 'Mammal', 'value' => 'Camel'),
array('key' => 'Bird', 'value' => 'Penguin'),
array('key' => 'Reptile', 'value' => 'Asp'),
array('key' => 'Fish', 'value' => 'Flounder'),
);
?>
在视图脚本中,你可以这样调用 PartialLoop 助手:
<dl>
<?= $this->partialLoop('partialLoop.phtml', $model) ?>
</dl>
<dl></dl>
<dt>Mammal</dt>
<dd>Camel</dd>
<dt>Bird</dt>
<dd>Penguin</dd>
<dt>Reptile</dt>
<dd>Asp</dd>
<dt>Fish</dt>
<dd>Flounder</dd>
</dl>
在其它模块中解析 Partials
有时候 partial 存在于不同的模块(Module)。
可以把模块的名称当作第二个参数传递给 partial() 或者 partialLoop(),
把 $model 作为第三个参数
<?= $this->partial('pager.phtml', 'list', $pagerData) ?>