内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
如何在ZF2中获得与页面请求相关的各种参数?像POST/GET参数一样,要访问的路由、发送的标头和上传的文件。
最简单的方法是使用Params插件,在Beta 5中导入。
要在控制器中获取命名参数的值,您需要为要查找的参数类型选择适当的方法,并传入名称。
$this->params()->fromPost('paramname'); // From POST $this->params()->fromQuery('paramname'); // From GET $this->params()->fromRoute('paramname'); // From RouteMatch $this->params()->fromHeader('paramname'); // From header $this->params()->fromFiles('paramname'); // From file being uploaded
所有这些方法都支持默认值,如果找不到具有给定名称的参数,则返回默认值。
$orderBy = $this->params()->fromQuery('orderby', 'name');
要获取一种类型的所有参数,只需不传入任何内容,Params插件就会返回一个值数组,并将其名称作为键。
$allGetValues = $this->params()->fromQuery(); // empty method call
array( 'orderby' => 'birthdate', 'filter' => 'hasphone', );
$this->getRequest()->getRequest('name', 'default'); $this->getEvent()->getRouteMatch()->getParam('name', 'default');
获取已发布的json字符串的最简单方法是读取‘php://put’的内容,然后对其进行解码。例如,我有一个简单的Zend路由:
'save-json' => array( 'type' => 'Zend\Mvc\Router\Http\Segment', 'options' => array( 'route' => '/save-json/', 'defaults' => array( 'controller' => 'CDB\Controller\Index', 'action' => 'save-json', ), ), ),
我想用angar的$http.post将数据发布到它。那条柱子很好,但是Zend的检索方法
$this->params()->fromPost('paramname');