如何访问Zend Framework 2中的route, post, get 等参数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

如何在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',
);

不使用Params插件

例子:

$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'); 

扫码关注云+社区