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

Mixing Named params with standard params Phalcon

我有一个 url 可以这样加载字体:

/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
)

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

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

如果你有以下URL:

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

那么weights=regular,bold,light就是GET参数

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

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

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

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