Php ZF:如何访问控制器&x27;表单方法中的请求对象?
如何在表单方法中访问请求对象? 我假设访问控制器的请求对象是可能的 在表单方法中使用ActionHelper,但为 这样的任务似乎过于繁重 或者我应该以某种方式将控制器的请求保存到Zend_注册表并以表单形式访问注册表项吗Php ZF:如何访问控制器&x27;表单方法中的请求对象?,php,zend-framework,request,Php,Zend Framework,Request,如何在表单方法中访问请求对象? 我假设访问控制器的请求对象是可能的 在表单方法中使用ActionHelper,但为 这样的任务似乎过于繁重 或者我应该以某种方式将控制器的请求保存到Zend_注册表并以表单形式访问注册表项吗 $request = Zend_Controller_Front::getInstance()->getRequest() ?尽管注册表方法(1)和访问单体前端控制器(2)都可以工作,这两种方法都有一些主要的缺点:它们引入了对Zend_控制器\u前端或Zend_注册表
$request = Zend_Controller_Front::getInstance()->getRequest()
?尽管注册表方法(1)和访问单体前端控制器(2)都可以工作,这两种方法都有一些主要的缺点:它们引入了对
Zend_控制器\u前端
或Zend_注册表
和请求键以及Zend_控制器\u请求摘要
的严格依赖
// (1)
// in bootstrap e.g.
Zend_Registry::set('request', Zend_Controller_Front::getInstance()->getRequest());
// in form method
$request = Zend_Registry::get('request');
// (2)
//in form method
$request = Zend_Controller_Front::getInstance()->getRequest();
我认为最好的方法是通过表单的构造函数或表单上的setter将请求对象注入表单,或者更好的方法是将请求参数作为数组注入
// form class (constructor-injection presumed)
class My_Form extends Zend_Form
{
/**
* @var Zend_Controller_Request_Abstract
*/
protected $_request;
public function __construct(Zend_Controller_Request_Abstract $request, $options = null)
{
parent:: __construct($options);
$this->_request = $request;
}
}
// or inject only parameters
class My_Form extends Zend_Form
{
/**
* @var array
*/
protected $_params;
public function __construct(array $params, $options = null)
{
parent:: __construct($options);
$this->_params= $params;
}
}
你能举例说明你到底想做什么吗?