捕获致命错误:类Zend \ Form \ View \ Helper \ FormLabel的对象 无法转换为字符串 (...)\ module \ Application \ view \ application \ produtos \ form.phtml在线 2
form.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);?>
ProdutosController.php
public function novoAction()
{
$form = new ProdutoForm();
$view = new ViewModel(array(
'form' => $form
));
$view->setTemplate('application/produtos/form.phtml');
return $view;
}
ProdutoForm.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);
...
答案 0 :(得分:2)
是的,那些表单视图助手应该真的有更好的错误检测。我猜测$form->get('nome_produto')
正在返回null
。因此,FormLabel
视图助手只是返回自己,因为它没有任何实际渲染。然后echo
命令尝试将视图助手强制转换为字符串。
仔细检查元素名称,确保您从表单中获取正确的项目。