重定向 – 是否可以将数据转发到Zend 2中的另一个控制器/操作?

栏目: PHP · 发布时间: 6年前

内容简介:我认为一个常见的问题是尝试将数据转发(发布)到另一个页面.通常情况下,我会使用会话来在页面之间传递数据,但Zend中的这个前向助手看起来有潜力.有没有办法获得有关转发请求的信息?就像要求转发器一样(当没有转发器时它通常会返回null)?如果没有当前的实施,是否可能?这将是一个有趣的项目,无论如何我永远都想要的东西. (我现在也在使用自己的BcryptDbTableAuth类,直到找到更好的解决方案).顺便说一句,我不是在谈论添加请求参数.它应该对用户不可见.而且我还在研究变量路线(Wildcard应该可以做

我认为一个常见的问题是尝试将数据转发(发布)到另一个页面.通常情况下,我会使用会话来在页面之间传递数据,但Zend中的这个前向助手看起来有潜力.有没有办法获得有关转发请求的信息?就像要求转发器一样(当没有转发器时它通常会返回null)?

如果没有当前的实施,是否可能?这将是一个有趣的项目,无论如何我永远都想要的东西. (我现在也在使用自己的BcryptDbTableAuth类,直到找到更好的解决方案).

顺便说一句,我不是在谈论添加请求参数.它应该对用户不可见.而且我还在研究变量路线(Wildcard应该可以做到这一点,但我不断得到“路线无法匹配”……将继续钻探更多)

“前进”有两种选择.理解 php 是服务器端语言处理器,用于获取传入请求并返回响应.

也就是说,第一个“前进”使用框架内转发.这意味着只有一个请求和一个响应.框架内部调用一个控制器操作,然后调用另一个操作符. Zend Framework将此方法称为前进.

第二个“转发”是一个真正的重定向,其中第一个响应包含Location头和302 http状态代码.这导致第二次请求并且连续地在第二次响应中. Zend Framework调用此方法重定向.

因此,在上面,您在问题中谈到的转发不涉及任何会话或路由匹配参数,因为对动作的第二次调用是在相同的php过程中,因此所有变量都已知.

前进的例子

转发的一个例子是使用前向控制器插件:

class MyController
{
  public function myAction()
  {
    return $this->forward()->dispatch('MyModule\Controller\Other', array(
      'action' => 'other',
      'foo'   => 'bar',
      'baz'   => new Bat()
    ));
  }
}

要访问:

class OtherController {
    public function otherAction()
    {
        $foo = $this->params()->fromRoute('foo');
    }
}

您可能会注意到,可以向前向呼叫添加其他参数,包括真实对象.

重定向示例

一种选择是使用路由参数,因此您可以捕获发回的URL中的数据.因为你说你不想要那个,你必须使用一个会话:

use Zend\Session\Container;

class MyController
{
  public function myAction()
  {
    $session = new Container('MyContainer');
    $session->foo = 'bar';
    $session->baz = 'bat';

    return $this->redirect()->toRoute('my/other/route');
  }
}

翻译自:https://stackoverflow.com/questions/14180839/is-it-possible-to-forward-data-to-another-controller-action-in-zend-2


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

与孩子一起学编程

与孩子一起学编程

[美] 桑德Warren Sande、Carter Sande / 苏金国、姚曜 等 / 人民邮电出版社 / 2010-11 / 65.00元

一本老少咸宜的编程入门奇书!一册在手,你完全可以带着自己的孩子,跟随Sande父子组合在轻松的氛围中熟悉那些编程概念,如内存、循环、输入和输出、数据结构和图形用户界面等。这些知识一点儿也不高深,听起来备感亲切,书中言语幽默风趣而不失真义,让学习过程充满乐趣。细心的作者还配上了孩子们都喜欢的可爱漫画和经过运行测试的程序示例,教你用最易编写和最易理解的Python语言,写出你梦想中的游戏程序。 ......一起来看看 《与孩子一起学编程》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具