我想在我的路线上定义以下默认行为:
Url: myapp.com/mymodule/mycontroller/myaction/q/someTerm/key/someValue/key2/anotherValue
此 url 应为调度程序提供以下参数:
array(
'q' => 'someTerm',
'key' => 'someValue',
'key2' => 'anotherValue'
):
我知道可以通过扩展路由器并实现我自己的路由器来轻松完成,但我想知道 Phalcon 是否有一个默认标志可以默认打开该方法。
现在,如果我申请路线
':module/:controller/:action/:params' 到这个 URL,我得到以下参数:
array(
0 => 'q',
1 => 'someTerm',
2 => 'key'
... etc
);
这是我不想要的。
如果 Phalcon 路由器没有执行此操作的默认标志,是否有一个事件在控制器中的 DI 调度程序中的参数可用之前立即触发?我想至少在它们到达控制器之前手动将它们映射到 key=>value 对。
编辑:我现在正在查看控制器中的 beforeExecuteRoute 事件,应该做我需要的。但是如果路由器自动执行此操作,我仍然会喜欢它 - 有时参数不是固定顺序,或者其中一些只是消失(想想复杂的搜索查询)。