使用Symfony从路由获取parameters.yml中的数组

使用Symfony从路由获取parameters.yml中的数组,symfony,Symfony,我的yml中有参数: // myparameter.yml parameters: keekbootstrap4.color: blue: - color1 - color2 red: - color1 - color2 在我的控制器中,我想获得“蓝色”键: 但我有一个错误: 路由配置值“%keekbootstrap4.color%”中使用的容器参数“keek

我的yml中有参数:

// myparameter.yml
parameters:
    keekbootstrap4.color:
        blue:
            - color1
            - color2
        red:
            - color1
            - color2
在我的控制器中,我想获得“蓝色”键:

但我有一个错误:

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


你能帮我吗?是否可以在路由url中获取具有密钥的数组?谢谢:)

我想你应该这样做:

/**
 * @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]);
}

可能重复为什么你问同一个问题两次?如果您对提供的答案不满意,您可以随时编辑您的原始帖子,进一步澄清您的问题以及您的期望答案:我不知道它是否有效,但您是否尝试过
requirements={“color”:“%keekbootstrap4.color.blue.0%”|“%keekbootstrap4.color.blue.1%”
requirements={“color”:%keekbootstrap4.color.blue.0%|%keekbootstrap4.color.blue.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]);
}