Zend Form:在非对象上调用成员函数 setValue()

Zend Form: Call to a member function setValue() on a non-object

我有这个错误:

Call to a member function setValue() on a non-object in

当我尝试用我存储的数据填充表单时。最奇怪的是,如果我在其他表格上使用相同的方法,它工作正常。

我的代码是:

zend 表单摘要:

class App_Form_BootstrapForm extends Zend_Form
{

    public function __construct($options = null)
    {
        // decorator style
    }

    public function populate($data)
    {
        foreach ($data as $field => $value) {
            $this->{$field}->setValue($value);
        }
        return $this;
    }
}

这是我的表格:

class Application_Form_Admin_Pneumatico_Pneumatico extends App_Form_BootstrapForm
{

    public function init()
    {
        $this->setAttrib("vertical", true);

        $this->setMethod('post');
        $this->setName('pneumatico');
        $this->setAction('');
        $this->setAttrib('enctype', 'multipart/form-data');

        $this->addElement('text', 'codice', array(
            'filters' => array('StringTrim'),
            'validators' => array(
                array('StringLength', true, array(3, 50))
            ),
            'required' => true,
            'placeholder' => 'Codice prodotto',
            'class' => 'form-control',
            'label' => 'Codice (*)'
        ));
        // other form elements
    }
}

我试图将表单和要插入的值传递给视图,然后使用填充,但我遇到了同样的错误。在将它发送到视图之前,我尝试在控制器中执行此操作,但我得到了同样的错误。

有人可以帮助我吗?

您的错误应该来自此处的 populate 函数

$this->{$field}->setValue($value);

并且如果 $data 数组中的键之一不是表单值 $this->{$field} 将导致 非对象 错误。

首先检查数据数组中的所有键。