Pass variable into Zend Form

别等时光非礼了梦想. 提交于 2019-12-10 09:34:07

问题


I have a zend form instantiated

$form = Form_Example();

Now I want to pass an ID from my controller to my form.

So I did this:

$form = Form_Example(array('id' => $id));

Inside the form I try to call it through:

$this->id

But it isn't there.

Anybody knows how to get that id into the form?

Thanks


回答1:


Make sure you have setter for the the element, in your case public function setId($id). Zend_Form constructor checks if setter method exists for the property, if it exists then it is called, otherwise it sets the attribute of the form, see setAttrib($key, $value).

The end result will be something like this

class Application_Form_YourForm extends Zend_Form {

    /**
     * Id
     * @var <type> 
     */
    protected $_id = null;

    /**
     * Setter for ID
     * @param <type> $id 
     */
    public function setId($id){
        $this->_id = $id;
    }

    // Rest of your code...
}



回答2:


You should be able to access the id property inside the form with

$this->_attribs['id']


来源:https://stackoverflow.com/questions/3863083/pass-variable-into-zend-form

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!