Symfony得到“GET”

时间:2011-08-17 10:50:39

标签: php symfony1 symfony-1.4

我有以下路线:

register_invitecode:
  url:     /register/:invitecode
  param:   { module: home, action: register }
register:
  url:     /register
  param:   { module: home, action: register }

我想在部分 _form.php 中使用“invitecode”,但我无法获得$ _GET ['invitecode']。我使用了以下代码:

<?php echo $sf_request->getGetParameter('invitecode') ?>

它没有给我任何错误,但它也没有向我显示邀请码。

我该怎么办?

另外,有没有办法避免“注册”路由的双重声明? invitecode 应该是可选参数,不是强制性的。

3 个答案:

答案 0 :(得分:2)

Get参数(sfWebRequest->getGetParameter())是HTTP GET操作的“物理”参数的参数。在HTTP GET中,所有参数都添加到查询字符串(?invitecode=abcd)中。 如果要访问路由中的参数(例如您的情况),则必须使用sfWebRequest->getParameter()

答案 1 :(得分:2)

就register和register_invitecode而言,你可以使用1路径

register:
  url:     /register/:invitecode
  param:   { module: home, action: register }

使用邀请代码<?php echo url_for('register?invitecode=foobar'); ?>生成包含<?php echo url_for('register'); ?>

的链接

获取模板中的变量try <?php echo $sf_request->get('invitecode'); ?>

行动$request->getParameter('invitecode')

中的

答案 2 :(得分:0)

如果您需要强制路线为GET,您可以将其添加到您的路线:

requirements:
    sf_method: [get]