如何在 Zend Framework 2 中访问路由、发布、获取等参数

2023-12-12

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


最简单的方法是使用参数插件,在 beta5 中引入。它具有实用方法,可以轻松访问不同类型的参数。一如既往,读书测试对于理解某物应该如何使用来说可以证明是有价值的。

获取单个值

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

例子:

$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

 

默认值

所有这些方法还支持默认值,如果未找到具有给定名称的参数,则将返回默认值。

Example:

$orderBy = $this->params()->fromQuery('orderby', 'name');

参观时http://example.com/?orderby=birthdate, $orderBy将会有价值出生日期.
参观时http://example.com/, $orderBy将有default value name.
 

获取所有参数

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

Example:

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

参观时 $allGetValues将是一个像这样的数组

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

 

不使用 Params 插件

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

Example:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Zend Framework 2 中访问路由、发布、获取等参数 的相关文章

随机推荐

  • 如何将 Eclipse 和 Eclipse 项目指向 Eclipse 中的新 JRE 版本? (不使用JAVA_HOME)

    设置场景 我的系统上有两个版本的 Java 有 32 位版本和 64 位版本 我拥有的另一个版本是 64 位版本的 Eclipse Java EE MyEclipse 32位版本 指的是32位版本的JDK 我现在尝试将 Eclipse 32
  • 当使用浏览器返回时,如何保留 jquery 删除的一些输入文本?

    我对以下页面有一些错误 http jsbin com agedu 带有一些注释的源代码 http jsbin com agedu edit 问题是 当输入内容并执行查询以显示搜索结果时 如果我返回浏览器中的搜索页面 Firefox 3 5
  • rdtscp、rdtsc 之间的区别:内存和 cpuid/rdtsc?

    假设我们尝试使用 tsc 进行性能监控 并且我们希望防止指令重新排序 这些是我们的选择 1 rdtscp是一个序列化调用 它可以防止对 rdtscp 调用进行重新排序 asm volatile rdtscp serializing read
  • Java:如何在抛出异常后继续读取文件

    所以我的教授给我们分配了一个项目 我们必须从文本文件中获取命令并使用它们来驱动程序的流程 这些命令 例如起飞 着陆 装载货物 卸载货物等 旨在模拟类似飞机的物体 有时这些命令执行起来没有意义 例如在飞机飞行时装载货物 因此 为了防止发生类似
  • 是否可以在不使用 EDT 的情况下在 Java Swing 中执行主动渲染?

    我正在考虑使用缓冲策略以及 Javadoc 中描述的以下技术 Main loop while done Prepare for rendering the next frame Render single frame do The foll
  • 我可以使用 Java API 将图像文件存储在 firebase 中吗?

    有没有什么方法可以使用Java api将图像文件存储在firebase中以用于android应用程序 我已阅读此主题我可以使用 Java API 将图像文件存储在 firebase 中吗但仍然没有答案 我知道有一个官方 api 名为 fir
  • TFrecord 比原始 JPEG 图像占用更多空间

    我正在尝试将 Jpeg 图像集转换为 TFrecords 但 TFrecord 文件占用的空间几乎是图像集的 5 倍 经过大量谷歌搜索后 我了解到当 JPEG 被写入 TFrecords 时 它们就不再是 JPEG 了 但是我还没有遇到这个
  • 如何子类化 matplotlib 的图形类?

    我正在尝试向我的图形添加一些自定义行为和属性 但我无法决定有效的 和Pythonic 方法 我的第一个冲动是简单地子类化matplotlib figure Figure但我不知道如何实现这一点 我通常创建新的图形并用类似的东西开始我的绘图
  • .gitattributes:merge=我们的策略与快进合并

    如果我处于这样的 git 情况 da6a750 A Further in A okay for merging back into master bf27b58 Merge branch master into A 86294d1 HEAD
  • 无法使用沙盒帐户

    我真的需要你们的帮助 两个小时以来 我遇到了一个与 Paypal Sandbox 相关的非常奇怪的问题 我在堆栈溢出上阅读了很多答案 但没有一个对我有帮助 我将尝试解释我的问题 当我创建一个新的沙箱帐户 尊重密码强度 负载平衡等所有规则 时
  • 序列化数组以将它们存储在数据库中的意义是什么?

    我看到人们存储数组的方式如下 a 6 i 0 s 5 11148 i 1 s 5 11149 i 2 s 5 11150 i 3 s 5 11153 i 4 s 5 11152 i 5 s 5 11160 为什么他们不能是 11148 11
  • Cython 中数组的总和

    我正在尝试找到使用 Cython 水平求和 numpy 数组数组的最快方法 首先 假设我有一个随机浮点数 10 x 100 000 的二维数组 我可以创建一个object数组 每一列作为数组中的值 如下所示 n 10 5 a np rand
  • 如果名称变量以下划线为前缀,则 Bean 验证不起作用

    我正在尝试一些 bean 验证 但我偶然发现了 奇怪 的行为 我正在使用 Glassfish 和 Primefaces 作为前端 如果有什么区别的话 在我的项目的其他地方 我使用 Hibernate validator 我不确定它是否正在验
  • 垃圾收集器 C#,有关“清除”对象的问题

    我阅读了一些有关垃圾收集的信息 它是如何工作的等 我尝试通过我的示例了解它是如何工作的 但我认为我有问题 我知道垃圾收集器在以下情况下运行 内存不够 你调用GC Collect 这是我的代码 public partial class For
  • 为什么 trySend 会发出假数据?

    我需要在 MVVM 中获取用户身份验证状态 在存储库中我这样做 override fun getAuthResponse callbackFlow val listener AuthStateListener Log d TAG curre
  • 在数据库中保存塞尔维亚拉丁字符

    我在数据库中保存塞尔维亚拉丁字符时遇到问题 但只有当我从 jsf 应用程序保存它时才会出现问题 当我直接使用 SQLyog 在数据库中插入一些行时 一切都很好 当我尝试从应用程序插入某些内容而不是字符时 and 在数据库中插入问号 另一方面
  • jqgrid服务器异常错误消息

    有没有办法在我的 jqGrid 中显示从服务器发送的自定义异常消息 我的一个函数执行 throws 子句并抛出一些异常 我需要显示与此抛出的异常相关的错误消息 有没有办法在 jqGrid 中做到这一点 您没有指定在哪个 jqGrid 操作中
  • START_STICKY 和 START_NOT_STICKY

    有什么区别START STICKY and START NOT STICKY在android中实现服务时 谁能指出一些标准示例 这两个代码仅在手机内存不足并在服务完成执行之前终止服务时才相关 START STICKY告诉操作系统在有足够的内
  • 在scala中序列化优先级队列

    我正在尝试序列化一个可变的PriorityQueue在 scala 2 10 中 我得到了NotSerializableException将对象写入 ObjectOutputStream 时 我做了一个简单的测试用例 import java
  • 如何在 Zend Framework 2 中访问路由、发布、获取等参数

    zf2中如何获取与页面请求相关的各种参数 像 post get 参数 正在访问的路由 发送的标头和上传的文件 最简单的方法是使用参数插件 在 beta5 中引入 它具有实用方法 可以轻松访问不同类型的参数 一如既往 读书测试对于理解某物应该