Symfony/路由:使用POST避免URL中的查询参数

Symfony/路由:使用POST避免URL中的查询参数,url,parameters,symfony1,routing,http-headers,Url,Parameters,Symfony1,Routing,Http Headers,我想将id从一个操作传递到下一个操作,但我不想在URL中看到它。有办法隐藏它吗 使用Symfony,我创建了一个注册完成页面,其URL应该是/signup/done 处理表单时,我想重定向到signupSuccess操作,并传递最近创建的ID,以备将来使用。所以我用 $this->redirect('@signup_done?id=' . $sign_up->getId()); 路线如下: signup_done: url: /signup/done param: {

我想将id从一个操作传递到下一个操作,但我不想在URL中看到它。有办法隐藏它吗

使用Symfony,我创建了一个注册完成页面,其URL应该是
/signup/done
处理表单时,我想重定向到
signupSuccess
操作,并传递最近创建的
ID
,以备将来使用。所以我用

$this->redirect('@signup_done?id=' . $sign_up->getId());
路线如下:

signup_done:
  url:   /signup/done
  param: { module: SignUp, action: signupDone }
我避免了结尾的:id,因为我不希望它出现在URL中。 但是结果URL是
/signup/done?id=1

作为一个实验,我试着把这个放在一个模板上

<?php echo link_to('Sign-up again', '@signup_done?id=1', 'post=true') ?>

即使在使用post时,查询参数也会显示在URL中


需要的是:我想将id从一个操作传递到下一个操作,但我不想在URL中看到它。有办法隐藏它吗?

如果你想发布,你需要一个表单。在symfony 1.2中,有一些帮助者,你可以打电话让你这么做,但是为了推广好的代码,他们被删除了

根据您希望“再次注册”文本的外观,您可以创建一个简单表单和一个提交按钮,或者创建一个链接,附加一个单击侦听器,然后通过JS在那里创建一个表单,最后发布它


url\u中传递给路由的任何参数,如
link\u至
,这些参数最终会出现在get参数中。

如果要发布,您需要一个表单。在symfony 1.2中,有一些帮助者,你可以打电话让你这么做,但是为了推广好的代码,他们被删除了

根据您希望“再次注册”文本的外观,您可以创建一个简单表单和一个提交按钮,或者创建一个链接,附加一个单击侦听器,然后通过JS在那里创建一个表单,最后发布它


您在
url\u中为
link\u to
传递给路由的任何参数都会在get参数中结束。

我使用
$request->setParameter('id',$id)
将id设置为请求中的一个参数,并且它在下一个操作中可用


这保持了URL的干净。

我使用
$request->setParameter('id',$id)
将id设置为请求中的一个参数,并且它在下一个操作中可用


这保持了URL的干净。

但是我在链接中提到的post=true属性确实触发了通过JS提交表单。只是超链接似乎有查询参数,页面的URL也有查询参数。我的路由定义有问题吗?但是我在链接_中提到的post=true属性确实会触发通过JS提交表单。只是超链接似乎有查询参数,页面的URL也有查询参数。我的路由定义是否出错?