使用Symfony

时间:2016-11-07 20:45:45

标签: symfony

我的yml中有参数:

// myparameter.yml
parameters:
    keekbootstrap4.color:
        blue:
            - color1
            - color2
        red:
            - color1
            - color2

在我的控制器中,我想获得“蓝色”键:

/**
 * @Route("/keekbootstrap4-card-{color}.css", requirements={"color" = "%keekbootstrap4.color%"}, name="keekbootstrap4_card")
 */
public function indexAction()
{
    dump($this->container->getParameter('keekbootstrap4.color')[$color]);

但我有这个错误:

路由配置值“%keekbootstrap4.color%”中使用的容器参数“keekbootstrap4.color”必须是字符串或数字,但它的类型为array。

你能帮帮我吗?在路由网址中可以使用密钥获取数组吗?谢谢:))

1 个答案:

答案 0 :(得分:1)

我想你想这样做:

/**
 * @Route("/keekbootstrap4-card-{color}.css", name="keekbootstrap4_card")
 */
public function indexAction($color)
{
    $colors = $this->getParameter('keekbootstrap4.color');

    if (!array_key_exists($color, $colors)) {
        throw $this->createNotFoundException();
    }

    dump($colors[$color]);
}