5

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

2 Answers 2

13

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...
}
Sign up to request clarification or add additional context in comments.

1 Comment

Simple solution to a seemingly complicated issue. Thank you!
3

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

$this->_attribs['id']

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.