Php Symfony路由到外部站点,包括会话值

Php Symfony路由到外部站点,包括会话值,php,symfony1,Php,Symfony1,我正在移植一个使用Symfony框架的遗留系统。我对Symfony几乎没有任何经验 我需要覆盖到外部站点的操作的路由,并包括会话值作为参数 这是当前的routing.ymlcode mysystemtool: url: /:module/mysystemtool/tool/* param: { action: mysystemtool } 我需要重定向到像http://thirdpartyurl.com/?session_param=session_value 你知道怎么做吗?你不

我正在移植一个使用Symfony框架的遗留系统。我对Symfony几乎没有任何经验

我需要覆盖到外部站点的操作的路由,并包括会话值作为参数

这是当前的
routing.yml
code

mysystemtool:
  url:   /:module/mysystemtool/tool/*
  param: { action: mysystemtool }
我需要重定向到像
http://thirdpartyurl.com/?session_param=session_value


你知道怎么做吗?

你不能将它发送出去,因为发送出去的只是内部的东西。也就是说,您可以在控制器中重定向:

public function executeMysystemtool(sfWebRequest $request) {

    $param = $this->getUser()->getAttribute('session_param', 'default_value');
    $this->redirect('http://thirdpartyurl.com?session_param='.$param);
}

当然,您需要在模块中设置
actions.class.php
,以便对该操作进行编码,但是如果它是一个现有的操作,那么您只需更改该操作中的逻辑即可

你不能将它发送出去,因为发送出去的只是内部的东西。也就是说,您可以在控制器中重定向:

public function executeMysystemtool(sfWebRequest $request) {

    $param = $this->getUser()->getAttribute('session_param', 'default_value');
    $this->redirect('http://thirdpartyurl.com?session_param='.$param);
}

当然,您需要在模块中设置
actions.class.php
,以便对该操作进行编码,但是如果它是一个现有的操作,那么您只需更改该操作中的逻辑即可

哪个Symfony版本?Legacy建议使用1.x,但是,只要你能说出它的名字,它总是更安全。我不确定我是否理解。路由用于将传入URI映射到控制器/操作。如果需要生成外部URL,则需要自己的逻辑/方法,因为这超出了路由组件的范围。哪个Symfony版本?Legacy建议使用1.x,但是,只要你能说出它的名字,它总是更安全。我不确定我是否理解。路由用于将传入URI映射到控制器/操作。如果您需要生成外部URL,那么您需要自己的逻辑/方法,因为这超出了路由组件的范围。最棒的是,当您不希望Symfony弄乱URL时,它也适用于内部内容。例如,在中,如果不希望所有GET参数都是/stacked/into/slashes/like/that@user14764:在这种情况下,您还可以更改路由规则以附加额外的参数作为查询字符串:-)这一点的好处是,当您不希望Symfony弄乱URL时,它也适用于内部内容。例如,在中,如果不希望所有GET参数都是/stacked/into/slashes/like/that@user14764:在这种情况下,您还可以更改路由规则,以附加额外的参数作为查询字符串:-)