Symfony Routing - Необязательные параметры - PullRequest
4 голосов
/ 29 июня 2011

Я создаю проект Symfony, который выводит JSON для использования приложением iPhone.

У меня настроен маршрут:

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

В данный момент перечислены все уведомления (одна из моих моделей).

Что я хотел бы сделать, так это добавить некоторые параметры, подобно тому, как в API Twitter есть 'since_id' - поэтому, если запрошен /notifications.json?since_id=3, будут только уведомления с ID выше 3 показано на рисунке.

Не вижу, чтобы я боролся с логикой действий, но из-за маршрутов такого рода я немного почесал голову!

Любая помощь будет чрезвычайно признательна.

1 Ответ

6 голосов
/ 29 июня 2011

Если вы не укажете никаких именованных параметров (например, :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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...