将命名参数与标准参数Phalcon混合

时间:2016-06-11 03:31:41

标签: url phalcon 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()

数组不显示权重参数:

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

如何在不更改网址结构的情况下让它看起来像这样?

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

1 个答案:

答案 0 :(得分:2)

如果您有以下网址:

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

然后weights=regular,bold,light是GET参数。

您可以使用以下方式在Phalcon中请求这些:

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

您不必在路线中声明此内容,Phalcon会自动将这些GET参数附加到路线的末尾。

查看Phalcon HTTP Request docs了解详情