Передайте переменную в Zend Form - PullRequest
4 голосов
/ 05 октября 2010

У меня есть экземпляр zend формы

$form = Form_Example();

Теперь я хочу передать идентификатор из моего контроллера в мою форму.

Итак, я сделал это:

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

Внутри формы я пытаюсь позвонить через:

$this->id

Но его там нет.

Кто-нибудь знает, как получить этот идентификатор в форме?

Спасибо

Ответы [ 2 ]

12 голосов
/ 05 октября 2010

Убедитесь, что у вас есть установщик для элемента, в вашем случае public function setId($id).Конструктор Zend_Form проверяет, существует ли метод свойства для свойства, если он существует, то он вызывается, в противном случае он устанавливает атрибут формы, см. setAttrib($key, $value).

Конечный результат будет примерно таким:

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...
}
3 голосов
/ 05 октября 2010

Вы должны иметь доступ к свойству id внутри формы с помощью

$this->_attribs['id']
...