В этом случае вы, вероятно, могли бы написать правило маршрутизации следующим образом (не проверено):
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
, как в моем первом примере.