我想確定我的路線以下默認行爲:如何在Phalcon的路由參數中定義默認鍵=>值對行爲?
Url: myapp.com/mymodule/mycontroller/myaction/q/someTerm/key/someValue/key2/anotherValue
此網址應該給調度以下PARAMS:
array(
'q' => 'someTerm',
'key' => 'someValue',
'key2' => 'anotherValue'
):
我知道它可以通過擴展路由器可以輕鬆完成並實施我自己的,但我想知道Phalcon是否有一個默認標誌,默認情況下切換該方法。
現在,如果我申請的路線
':模塊/:控制器/:動作/:PARAMS' 這個URL,我得到以下PARAMS:
array(
0 => 'q',
1 => 'someTerm',
2 => 'key'
... etc
);
這是我不想要。
如果Phalcon路由器沒有執行此操作的默認標誌,是否有一個事件在控制器中的DI調度程序中的參數可用之前立即觸發?我想在他們到達控制器之前至少手動將它們映射到key =>值對中。
編輯:我現在正在調查控制器中的beforeExecuteRoute事件,應該做我需要的。但是,如果路由器自動執行此操作,我仍然會喜歡它 - 有時參數不是固定順序,或者其中一些消失(認爲複雜的搜索查詢)。
我沒有研究了這個,但在我寫的一個應用程序中,我只是使用X變量在Y位置的假設。即在你的例子中,我沒有使用/ q /,/ key /等,URL是:myaction/someTerm/someValue/AnotherValue等。讓我Ping @twistedxtra獲取更多的輸入。 – 2013-04-22 15:14:12
是的,重要的是我可以混合和匹配變量 - 有時候其中一些將會丟失,其他時候,他們的位置將只是混合。我現在知道我可以用來完成這個事件,所以我正在更新我的原始問題,但我仍然希望路由器自己做這件事。 – Swader 2013-04-22 15:15:59