我根据这个例子创建了我自己的视图助手。视图助手调用我的模型来创建表单。视图助手返回一个表单对象。
我的问题是是否可以为表单的 View Helper 分配自定义视图脚本。或者我应该只使用部分脚本?
非常感谢
我根据这个例子创建了我自己的视图助手。视图助手调用我的模型来创建表单。视图助手返回一个表单对象。
我的问题是是否可以为表单的 View Helper 分配自定义视图脚本。或者我应该只使用部分脚本?
非常感谢
视图助手应该用于帮助构建HTML
需要更多正常控制逻辑的构造, <?php if ($foo) :
and <? foreach($foo...
。
您将希望避免查看逻辑变得过于复杂或重复的情况,因为这会导致难以维护代码。
您发布的示例,根据传递给它<span>
的天数()参数返回一个标签。$numberOfDays
每次您希望输出“新”项目时,这很可能会重复检查,因此需要视图助手。
在您的情况下,理想的方法是通过FormElementManager
from 内部的控制器获取表单。
class FooController {
function someAction() {
$serviceManager = $this-getServiceLocator();
$formElementManager = $serviceManager->get('FormElementManager');
$myForm = $formElementManager->get('My\Form\Class\Name\Or\Alias');
return new \Zend\View\Model\Model(array(
'form' => $myForm
);
}
}
从 调用表单FormElementManager
将确保其依赖项被正确注入和init()
调用。
在视图中,您将使用 Zend 内置的 ViewHelpers 呈现表单(就像FormRow
获取我们复杂的表单对象并返回所有必需的 HTML)
有了上述内容,您“将视图脚本分配给表单”的需求就消失了,因为可以通过控制器将表单注入到任何视图脚本中。