Symfony Routing - 可选参数

时间:2011-06-28 22:25:35

标签: php iphone json symfony1

我正在创建一个Symfony项目,该项目输出JSON以供iPhone App使用。

我设置了路线:

notification_json:
  url: /notifications.json
  param: { module: notification, action: index, sf_format: json }

目前列出所有通知(我的某个型号)。

我想要做的是添加一些参数,就像Twitter API有'since_id' - 所以如果请求了/notifications.json?since_id=3,那么只有ID大于3的通知才会所示。

我看不到我在动作逻辑上挣扎,但这种事情的路由让我有点挠头!

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:6)

如果在:myparam中定义路径时未指定任何命名参数(例如routing.yml),则在生成路径时添加的任何参数都将作为普通GET变量附加。例如:

notification_json:
  url: /notifications.json
  param: { module: notification, action: index, sf_format: json }

用于:

<?php echo url_for("@notification_json?since_id=3"); ?>

会给你:

/notifications.json?since_id=3

如果您在路线中添加了命名参数,那么这些参数将被正常替换,并且如上所示在末尾标记任何其他参数,例如:

notification_json_test:
  url: /:param1/notifications.json
  param: { module: notification, action: index, sf_format: json }

用于:

<?php echo url_for("@notification_json?param1=foo&since_id=3"); ?>

会给你:

/foo/notifications.json?since_id=3