0

可捕获的致命错误:Zend\Form\View\Helper\FormLabel 类的对象无法在第 2 行的 (...)\module\Application\view\application\produtos\form.phtml 中转换为字符串

表单.phtml

<?php echo $this->form()->openTag($form);?>
<?php echo $this->formLabel($form->get('nome_produto'));?>
<?php echo $this->formElement($form->get('nome_produto'));?>
<?php echo $this->formErrors($form->get('nome_produto'));?>
<?php echo $this->form()->closeTag($form);?>

产品控制器.php

public function novoAction()
{
    $form = new ProdutoForm();

    $view = new ViewModel(array(
            'form' => $form
    ));
    $view->setTemplate('application/produtos/form.phtml');
    return $view;
}

产品表单.php

    <?php

namespace Application\Form;

use Zend\Form\Form;
use Zend\Form\Element\Text;

class ProdutoForm extends Form
{
public function __construct($name = null) {
    parent::__construct('produto');

    $nome = new Text('nome_produto');
    $nome->setLabel('Nome: ')
         ->setAttributes(array(
            'class' => 'input-mediun'
         ));
    $this->add($nome);

...

4

1 回答 1

2

是的,那些表单视图助手应该有更好的错误检测。我猜$form->get('nome_produto')是回来了null。结果,FormLabel视图助手只是简单地返回自己,因为它没有实际渲染的内容。然后该echo命令尝试将视图助手转换为字符串。

仔细检查元素名称并确保您从表单中获取正确的项目。

于 2013-04-19T02:23:40.380 回答