实际上,我更喜欢将其用作操作助手,然后仅使用标准占位符视图助手来呈现搜索表单。
让我演示一下:
实际的操作助手只是启动一个表单并准备显示。我将把表单结构留给你。
//the action helper
//Just fill in the args for the form to be displayed
class NameSpace_Controller_Action_Helper_Search extends Zend_Controller_Action_Helper_Abstract
{
public function direct($action, $label = null, $placeHolder = null)
{
$form = new Application_Form_Search();
//set the action
$form->setAction($action);
//set the submit button text
$form->search->setLabel($label);
//set the hint text displayed in the form window
$form->query->setAttribs(array('placeholder' => $placeHolder,
'size' => 27,
));
return $form;
}
}
我将助手放在控制器的预调度方法中,以便控制器中的每个操作都可以使用搜索表单,而不必在每个页面中构建它。
//to use the helper in your controller
class IndexController extends Zend_Controller_Action
{
public function preDispatch()
{
//setup action helper and assign it to a placeholder
$this->_helper->layout()->search = $this->_helper->search(
'/index/display', 'Search Collection!', 'Title');
}
//in your view script
<?php echo $this->layout()->search ?>
我喜欢将占位符放在我的主 layout.phtml 中,以便在我填充占位符时它会显示。现在你所要做的就是随心所欲地设计它。
请记住:与任何 html 表单一样,action 参数只是一个 url,因此任何有效的 url 都可以分配给表单操作。在此示例中,我使用了/controller/action
参数,但还有许多其他方法可以将 url 传递给表单。想到 url 助手是一个很好的方法。
url($urlOptions, $name, $reset, $encode):根据命名路由创建 URL 字符串。$urlOptions 应该是特定路由使用的键/值对的关联数组。