2012-08-13 4 views
7

Yapılandırma sınıfını kullanarak, nümerik tuşlar olmadan bir dizi düğümünü nasıl tanımlarım? Dizinin çocukları başka yapılandırma seçeneklerini temsil etmemektedir. Bunun yerine, sadece bir bütün olarak, seçici olarak yazılmayacak bir liste olacaklar.Symfony2 yapılandırma sınıfını kullanarak, çocukların anahtarları olmayan bir dizi düğümünü nasıl tanımlarım?

Şimdiye kadar var:

acme_base: 
    entities: 
    - 'Acme\BaseBundle\Entity\AnotherEntity1' 
    - 'Acme\BaseBundle\Entity\AnotherEntity2' 
    - 'Acme\BaseBundle\Entity\AnotherEntity3' 
    - 'Acme\BaseBundle\Entity\AnotherEntity4' 

cevap

22

Sana Düşündüm

$root 
    ->children() 
     ->arrayNode('entities') 
     ->addDefaultsIfNotSet() 
     ->prototype('scalar')->end() 
     ->defaultValue(array(
      'Acme\BaseBundle\Entity\DefaultEntity1', 
      'Acme\BaseBundle\Entity\DefaultEntity2', 
     )) 
    ->end() 
+1

gerek:

public function getConfigTreeBuilder() { $treeBuilder = new TreeBuilder; $root = $treeBuilder->root('acme_base'); $root ->children() ->arrayNode('entities') // Unfortunately, this doesn't work ->defaultValue(array( 'Acme\BaseBundle\Entity\DefaultEntity1', 'Acme\BaseBundle\Entity\DefaultEntity2', )) ->end() ->end(); return $treeBuilder; } 

app/config.yml, ben böyle üzerine yazmak mümkün istiyorum prototip yöntemiyle ilgili başka bir yerde. Ama '-> end()' like '-> prototype ('skaler') -> end()' ya da '' -> defaultValue ('parça her dizi öğesine uygulanacaktır. – mattalxndr

+0

ve eklemeniz gerekir. '-> addDefaultsIfNotSet() 'dan bahsetmişken, şu an çalışmanın ortasındaydım: – mattalxndr

+0

@mattalexx, sağa, unuttum -> end(). – solarc

İlgili konular