将变量传递给Zend Form

时间:2010-10-05 11:11:23

标签: php zend-framework zend-form

我有一个实例化的zend表单

$form = Form_Example();

现在我想将控制器中的ID传递给我的表单。

所以我这样做了:

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

在表单中,我尝试通过以下方式调用它:

$this->id

但它不存在。

有人知道如何将该ID转换为表单吗?

由于

2 个答案:

答案 0 :(得分:12)

确保您拥有该元素的setter,在您的案例public function setId($id)中。 Zend_Form构造函数检查属性是否存在setter方法,如果存在则调用它,否则它设置表单的属性,参见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...
}

答案 1 :(得分:3)

您应该可以使用

访问表单中的id属性
$this->_attribs['id']