2016-06-11 45 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