38.4. 视图助手(View Helper)
38.4.1. 基本的助手
以上helper的使用非常简单,下面是个例子。注意你只需要调用即可,
它们会根据需要自己加载并实例化。
<?php
// 在你的view脚本内部, $this 指向 Zend_View 实例.
//
// 假设你已经为select对应的变量$countries指定一系列option值,
// array('us' => 'United States', 'il' =>
// 'Israel', 'de' => 'Germany').
?>
<form action="action.php" method="post">
<p><label>Your Email:
<?php echo $this->formText('email', 'you@example.com', array('size' => 32)) ?>
</label></p>
<p><label>Your Country:
<?php echo $this->formSelect('country', 'us', null, $this->countries) ?>
</label></p>
<p><label>Would you like to opt in?
<?php echo $this->formCheckbox('opt_in', 'yes', null, array('yes', 'no')) ?>
</label></p>
</form>
38.4.1.1. 动作视图助手
Action 视图助手允许视图脚本执行一个特定的控制器Action;在执行之后的响应对象的结果将被返回。
有时候特定的Action生成可重用内容或“widget-ized”内容(在页面内生成一个带有特定功能的小面板,
类似于Windows Vista的widget,Haohappy注),这时我们就可以使用本功能。
内部调用_forward() 或者转向的Action在此将无效,将返回空字符串。
Action视图助手的API和大部分MVC组件调用控制器动作的方式一样:action($action,$controller,
$module = null, array $params = array())。
$action 和 $controller 是必须的;如果没有指定模块,缺省模块将被使用。
例 38.1. 动作视图助手的基本用法
例如,假设你有一个CommentController ,为了给当前请求输出评论列表,带一个可被调用的 listAction() 方法:
<div id="sidebar right">
<div class="item">
<?= $this->action('list', 'comment', null, array('count' => 10)); ?>
</div>
</div>