Php Zend:从Zend_表单内部获取Url参数

Php Zend:从Zend_表单内部获取Url参数,php,zend-framework,forms,url-parameters,Php,Zend Framework,Forms,Url Parameters,我需要设置一个隐藏的表单字段作为url参数的值。 我有: 我知道在实例化该类时,我可以(从控制器)在一个选项数组中传递它。但是我如何告诉表单查找URL参数本身呢 谢谢 Luca如果要将URL值传递到隐藏字段,可以使用以下方法: 在控制器中: // Get wanted value from url $var = $this->_request->getParam('url'); // Get correct form using Formloader hel

我需要设置一个隐藏的表单字段作为url参数的值。 我有:

我知道在实例化该类时,我可以(从控制器)在一个选项数组中传递它。但是我如何告诉表单查找URL参数本身呢

谢谢


Luca

如果要将URL值传递到隐藏字段,可以使用以下方法:

在控制器中:

    // Get wanted value from url
    $var = $this->_request->getParam('url');

    // Get correct form using Formloader helper (or any other method that you might be using)
    $this->view->form = $this->_helper->FormLoader('formname', array('url'=> $var);
protected $_url;

public function init(){
    $url = $this->_url;

    /*rest of your form*/
}

public function setUrl($value){
    $this->_url = $value;
}
并在表单中添加以下内容:

    // Get wanted value from url
    $var = $this->_request->getParam('url');

    // Get correct form using Formloader helper (or any other method that you might be using)
    $this->view->form = $this->_helper->FormLoader('formname', array('url'=> $var);
protected $_url;

public function init(){
    $url = $this->_url;

    /*rest of your form*/
}

public function setUrl($value){
    $this->_url = $value;
}
就这样!只需将表单中的$url变量传递到隐藏字段,您就可以完成所有操作:)


使用上面的构造,您可以在创建表单时填充字段,也可以从控制器手动使用$form->fill()

我认为没有办法做到这一点,因为Zend_表单与控制器分离。 你可以在注册表中注册你的pos/get变量,但那太脏了。您也可以直接访问$\u GET/$\u POST

或者在控制器中,您可以执行以下操作:

$form = new Zend_form();
$form->populate($this->_getAllParams());

它将用$\u POST/$\u GET的所有值填充表单

为什么不在表单中创建字段,然后在控制器中设置它的值,当表单已经实例化时?我想我更喜欢它。但是我可能是错误的,因为Jimmy C提出的解决方案更好