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

时间:2015-06-21 22:58:28

标签: php zend-framework zend-form

我有这个错误:

  

中的非对象上调用成员函数setValue()

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

我的代码是:

on zend form abstract:

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
    }
}

这是我的表格:

public class SimpleWakefulReceiver extends WakefulBroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // This is the Intent to deliver to our service.
        Intent service = new Intent(context, SimpleWakefulService.class);

        // Start the service, keeping the device awake while it is launching.
        Log.i("SimpleWakefulReceiver", "Starting service @ " + SystemClock.elapsedRealtime());
        startWakefulService(context, service);
    }
}

我尝试将表单和值传递给视图,然后使用populate,但我遇到了同样的错误。我尝试在控制器中执行此操作然后将其发送到视图,但我得到相同的错误。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您的错误应来自此处的populate功能

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

如果$data数组中的某个键不是表单值$this->{$field},则会导致非对象错误。

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