2016-11-07 64 views
-1

我在陽明參數:從路徑獲取parameters.yml陣列Symfony的

// 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」必須是字符串或數字,但它是數組類型。

你能幫我嗎?有可能獲得路由URL中的密鑰數組?謝謝:)

+2

[從YAML PHP陣列與Symfony的(可能的重複http://stackoverflow.com/questions/40439734/php- array-from-yaml-with-symfony) – LBA

+2

爲什麼你問同樣的問題兩次?如果您對提供的答案不滿意,您可以隨時編輯您的原始帖子,以進一步澄清您的問題以及您的期望anwer:http://stackoverflow.com/questions/40439734/php-array-from- yaml-with-symfony – LBA

+0

我不知道它是否可以工作,但是你是否用'requirements = {「color」:「%keekbootstrap4.color.blue.0%」|「%keekbootstrap4.color.blue.1% 「}'或'requirements = {」color「:」%keekbootstrap4.color.blue.0%|%keekbootstrap4.color.blue.1%「}' –

回答

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