Symfony 1.4: маршрутизация на основе частичного URL - PullRequest
0 голосов
/ 30 декабря 2011

Я пытаюсь сделать следующее:

http://www.mydomain.com/Foo/json_bar

в моем файле маршрутизации я хочу сказать что-нибудь, идущее к Foo / json_ *, оно должно перейти к соответствующему действию в файле action.class.php

например:
Foo / json_bar1 -> публичная функция executeBar1 Foo / json_bar2 -> публичная функция executeBar2

Спасибо

1 Ответ

1 голос
/ 30 декабря 2011

В этом случае вы, вероятно, могли бы написать правило маршрутизации следующим образом (не проверено):

my_rule:
  url:   /Foo/json_:action/
  params: { module: myModule, sf_method: json }

Это потому, что параметр :action является «магическим» параметром, который задает действие. (Обычно вы устанавливаете параметр action в блоке params.

Кстати, sf_method не является обязательным, но устанавливает формат запроса как json. Таким образом, любые исключения также будут отображаться в JSON, и для json устанавливаются правильные заголовки.

Лучшая практика для этого, кстати, будет: my_rule: url: /Foo/:action.:sf_method params: {module: myModule}

В этом случае вы можете написать действие bar1. Переход к /Foo/bar1.html отобразит HTML, а /Foo/bar1.json отобразит ответ json. Конечно, вы можете заменить :sf_method на json и установить параметр sf_method, как в моем первом примере.

...