ZendFramework Noob:在表单顶部添加文本

时间:2011-11-10 18:36:34

标签: zend-framework

我(就像今天一样)开始研究一些ZF的东西。

我有一个表格,需要在表格的顶部显示div中的一些文字,但我不知道如何包含它。

表格的结构是:

class MyForm extends \app\forms\FormType {
    public function init() {
        // gets all the form elements of the parent
        parent::init();

        // A few additional form elements for MyForm created here

    }
}

任何帮助都会得到帮助!

1 个答案:

答案 0 :(得分:1)

在您实例化表单对象的控制器中,只需使用视图对象设置它,如下所示:

public function actionNameAction()
{
    // ...
    if (/* some condition to check form page */) {
        $this->view->divText = 'your text';
    }
}

然后将div放在action-name.phtml脚本中:

views/scripts/controller/action-name.phtml

内容:

<?php if (!empty($this->divText)): ?>
    <div><?php echo $this->divText; ?></div>
<?php endif; ?>

此外,您可以通过引用传递视图对象到表单类。只需重载构造函数,如下所示:

public function __construct($options = null, &$view)
{
    parent::__construct($options);
    $this->view = $view;
}

然后在实例化表单对象时在控制器中执行以下操作:

$form = new MyForm(null, $this->view);

让我们再次回到你的表单类并修改init()方法:

public function init()
{
    // ...
    $this->view->divText = 'Text set from within ' . __CLASS__;
}

使用这种方式,您不必放置任何条件if语句来检查控制器中的任何内容。您已经检查视图中$this->divText是否为空,因此通过将视图对象传递给表单类,您可以确保仅在表单存在时设置该文本使用