2016-06-11 65 views
0

命名PARAMS我有一個加載字體作爲這樣一個網址:混合標準PARAMS爾康

/templatename/fonts/helvetica?weights=regular,bold,light

在PHP將動態生成相應的字體引用CSS文件。

我們剛剛搬到Phalcon,它壞了。我試圖找出如何告訴路由器使用字體名稱作爲命名參數,但也使用標準參數樣式。與問號。

這是我的路由器看起來像現在:

... 
    "fonts"=>[ 
      "pattern" => "/fonts/{file:[\w\W]}", 
      "route" => [ 
       "controller" => "asset", 
       "action" => "fonts" 
       ] 
     ] 
... 

當我使用的調度循環,就像這樣:

$params = $this->dispatcher->getParams()

數組不顯示權重PARAM:

Array 
(
    [template] => templatename 
    [file] => helvetica 
) 

我怎樣才能讓它看起來像這樣沒有更改網址結構?

Array 
(
    [template] => templatename 
    [file] => helvetica 
    [weights] => regular,bold,light 
) 

回答

2

如果您有以下網址:

/templatename/fonts/helvetica?weights=regular,bold,light 

然後weights=regular,bold,light是GET參數。

您可以通過請求這些內部爾康:

$weights = $this->request->getQuery('weights') 

您不必申報該你的路由裏面,爾康會自動將這些GET參數,以你的路由結束。

查看Phalcon HTTP Request docs瞭解更多信息

+1

看起來很近Phill。這實際上是一個答案。你將不得不混淆兩種方法的結果,使你的數組​​看起來像你想要的。 – yergo