加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony 2转发请求传递GET / POST参数

发布时间:2020-12-13 16:42:01 所属栏目:PHP教程 来源:网络整理
导读:是否可以转发请求,传递所有GET / POST参数? 我想如果我只是做 $this-forward('dest') 没有任何GET / POST参数,我将去dest? UPDATE 我的目标其实就是要有一个控制器动作,比如addSomething,它会检查用户是否有足够的“项目”添加东西.然后将请求转发给审批控
是否可以转发请求,传递所有GET / POST参数?

我想如果我只是做

$this->forward('dest')

没有任何GET / POST参数,我将去dest?

UPDATE

我的目标其实就是要有一个控制器动作,比如addSomething,它会检查用户是否有足够的“项目”添加东西.然后将请求转发给审批控制器,继续添加{Type} Something

或者在所有控制器中得到一个“检查”服务,检查更合适?无论如何,我认为它的信息知道如何转发控制器行动与所有参数

我没有看到任何理由通过内核转发请求.您可以按照建议的方式将验证服务中封装此逻辑的路由,或者您可以创建一个在路由器侦听器之后运行的kernel.request侦听器,并且仅在满足条件的情况下才应用_controller属性.

例如,这个routing.yml:

some_route:
    pattern:  /xyz
    defaults: { _controller_candidate: "FooBundle:Bar:baz" }

而这个听众:

class MyListener
{
    public function onKernelRequest($event)
    {
        $request = $event->getRequest();
        if (!$controller = $request->attributes->get('_controller_candidiate')) {
            return;
        }

        if (/* your logic... */) {
            $request->attributes->set('_controller',$controller');
        }
    }
}

配置运行后核心路由器侦听器:

services:
    my_listener:
        class: MyListener
        tags:
            -
                name:     kernel.event_listener
                event:    kernel.request
                priority: -10

Symfony 2.0中的核心路由器侦听器的优先级为0,Symfony 2.1中的优先级为32.在这两种情况下,-10的优先级都应该起作用.

我很好奇,看看这是否有效?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读