Symfony Get "GET" - PullRequest
       8

Symfony Get "GET"

0 голосов
/ 17 августа 2011

У меня есть следующий маршрут:

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

Я хочу использовать "код приглашения" в частичном _form.php , но не могу получить $ _GET['код приглашения'].Я использовал следующий код:

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

Это не дает мне никакой ошибки, но также не показывает мне код приглашения.

Что я могу сделать?

Кроме того, есть ли способ избежать двойного объявления маршрута "register"? инвайт-код должен быть необязательным параметром, не обязательным.

Ответы [ 3 ]

2 голосов
/ 17 августа 2011

, поскольку 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'); ?>

, чтобы получитьпеременная в шаблоне попробуйте <?php echo $sf_request->get('invitecode'); ?>

в действии $request->getParameter('invitecode')

2 голосов
/ 17 августа 2011

Параметры Get (sfWebRequest->getGetParameter()) - это параметры, которые являются «физическими» параметрами операции HTTP GET. В HTTP GET все параметры добавляются в строку запроса (?invitecode=abcd). Если вы хотите получить доступ к параметрам из маршрутизации (как в вашем случае), вы должны использовать sfWebRequest->getParameter().

0 голосов
/ 17 августа 2011

Если вам нужно, чтобы маршрут был GET, вы можете добавить его к своему маршруту:

requirements:
    sf_method: [get]
...