我想将id从一个动作传递给下一个动作,但我不希望它在URL中看到。有没有办法隐藏它?
使用Symfony,我创建了一个注册完成页面,其网址应为/signup/done
处理表单后,我想重定向到signupSuccess
操作并传递最近创建的ID
以供将来使用。所以我用......
$this->redirect('@signup_done?id=' . $sign_up->getId());
路由如下:
signup_done:
url: /signup/done
param: { module: SignUp, action: signupDone }
我最后避免使用:id,因为我不想在URL中使用它。
但结果网址为/signup/done?id=1
就像实验一样,我尝试将其放在模板上。
<?php echo link_to('Sign-up again', '@signup_done?id=1', 'post=true') ?>
即使使用post,查询参数也会显示在URL中。
需要是:我想将id从一个动作传递给下一个动作,但我不希望它在URL中看到。有没有办法隐藏它?
答案 0 :(得分:1)
如果你想发布,你需要一个表格。回到symfony 1.2,有一些帮助你可以打电话给你,但是他们被删除了,以促进推广好的代码。
根据您希望“再次注册”文本的外观,您可以创建一个简单的表单和一个提交按钮,或创建一个链接,附加一个点击监听器,并通过JS在那里创建一个表单,最后发布它
您在url_for
,link_to
中传递给路线的任何参数都会在get参数中结束。
答案 1 :(得分:1)
我使用$request->setParameter('id', $id)
将ID设置为请求中的参数,并在下一个操作中提供。
这使网址保持清洁。