我的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。
你能帮帮我吗?在路由网址中可以使用密钥获取数组吗?谢谢:))答案 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]);
}