0

我根据这个例子创建了我自己的视图助手。视图助手调用我的模型来创建表单。视图助手返回一个表单对象。

我的问题是是否可以为表单的 View Helper 分配自定义视图脚本。或者我应该只使用部分脚本?

非常感谢

4

1 回答 1

0

视图助手应该用于帮助构建HTML需要更多正常控制逻辑的构造, <?php if ($foo) :and <? foreach($foo...

您将希望避免查看逻辑变得过于复杂或重复的情况,因为这会导致难以维护代码。

您发布的示例,根据传递给它<span>的天数()参数返回一个标签。$numberOfDays每次您希望输出“新”项目时,这很可能会重复检查,因此需要视图助手。

在您的情况下,理想的方法是通过FormElementManagerfrom 内部的控制器获取表单。

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)

有了上述内容,您“将视图脚本分配给表单”的需求就消失了,因为可以通过控制器将表单注入到任何视图脚本中。

于 2013-10-14T18:46:48.433 回答