我(就像今天一样)开始研究一些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
}
}
任何帮助都会得到帮助!
答案 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
是否为空,因此通过将视图对象传递给表单类,您可以确保仅在表单存在时设置该文本使用