opH*_*AME 1 php zend-framework
我想我看不到树上的树..
我使用Zend Framework,其中layout.phtml是渲染和部分
<?php echo $this->partial('_header.phtml') ?>
Run Code Online (Sandbox Code Playgroud)
我的目标是将我的IndexController中的表单呈现为"_header.phtml"
<?php echo $this->form; ?>
Run Code Online (Sandbox Code Playgroud)
如何将表单传递给局部视图?
使用干净的变量范围呈现视图partials ...也就是说,它们不会从调用Zend_View实例继承视图变量.
这里有几个选项:
一,简单地打电话:
echo $this->render('_header.phtml');
Run Code Online (Sandbox Code Playgroud)
而不是使用部分.此文件可以访问所有视图变量,因此您只需将表单分配给控制器中的视图,就像其他任何内容一样.
另一种方法是将表单显式作为变量传递给partial,如下所示:
echo $this->partial('_header.phtml', array('form' => $this->form));
// $this->form inside your partial will be your form
Run Code Online (Sandbox Code Playgroud)
您的另一个选择是使用占位符或布局响应段.这是占位符的示例:
在您的_header.phtml或布局中...您希望表单呈现在哪里:
<?php echo $this->placeholder('header'); ?>
Run Code Online (Sandbox Code Playgroud)
在你的控制器中:
$this->view->placeholder('header')->append($form);
// I'm not sure, but you _may_ want to pass in $form->render() here.
// I can't remember if implode() (which is used in placeholders internally)
// will trigger the __toString() method of an object.
Run Code Online (Sandbox Code Playgroud)
这有一个额外的好处,即不会使用一次性变量(如表单)污染您的视图实例.
注意:我会在ZF网站备份后立即链接到手册页; 1.9今天发布,所以该网站目前正在更新.
这是一些相关的手册页:
| 归档时间: |
|
| 查看次数: |
3788 次 |
| 最近记录: |