php - Zend Framework 2中如何访问route、post、get等参数

标签 php file-upload zend-route zend-framework2

zf2中如何获取页面请求相关的各种参数?像 post/get 参数、被访问的路由、发送的 headers 和上传的文件。

最佳答案

最简单的方法是使用 Params plugin ,在 beta5 中引入。它具有实用方法,可以轻松访问不同类型的参数。一如既往,阅读 the tests可以证明对了解应该如何使用某些东西很有值(value)。

获取单个值

要获取 Controller 中命名参数的值,您需要为要查找的参数类型选择适当的方法并传入名称。

示例:

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

访问时 http://example.com/?orderby=birthdate , $orderBy 的值为 birthdate
访问时http://example.com/ , $orderBy 将具有 默认name

获取所有参数

要获取一种类型的所有参数,不要传入任何内容,Params 插件将返回一个值数组,其名称作为键。

示例:

$allGetValues = $this->params()->fromQuery(); // empty method call

访问时 http://example.com/?orderby=birthdate&filter=hasphone $allGetValues 将是一个类似

的数组
array(
    'orderby' => 'birthdate',
    'filter'  => 'hasphone',
);

 

不使用 Params 插件

如果您查看 source code对于 Params 插件,您将看到它只是对其他 Controller 的一个薄包装,以允许更一致的参数检索。如果您出于某种原因想要/需要直接访问它们,您可以在源代码中查看它是如何完成的。

示例:

$this->getRequest()->getRequest('name', 'default');
$this->getEvent()->getRouteMatch()->getParam('name', 'default');

注意:您可以使用超全局变量 $_GET、$_POST 等,但不鼓励这样做。

关于php - Zend Framework 2中如何访问route、post、get等参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12077126/

相关文章:

c# - 上传后如何重命名文件

PHP匹配主题表和页表

php - 使用 PHP 创建视频文件

javascript - 如何在 javascript 中进行漂亮而简单的文件上传?

C# .exe 将多个文件上传到 PHP 服务器 - 文件名参数?

zend-framework - Zend 路由和 HTTP 动词/方法

php - 优化Zend框架路由

php - 404 请求的 URL 无法被路由匹配

php - Symfony 和 Doctrine 选择查询无法正常工作

PHP 驱动的详尽统计数据 - 服务器端文本文件或 MySQL 表?