2017-05-29 58 views
0

我想上的Symfony创建的Symfony2

创建该配置
media: 
    medias: 
     category.type.subtype: 
      reference : "UUID" # What is used to identify object in DB (needed) 
      service : ~ # Service name "bundle.service.name" 

      identifiers: # If empty, no generator can be created for this media 
       channelId: # Example 
        label: ~ # Label for front 
        key: "channel_id" # Identifier in bdd (default : the name of identifier) 
       channelTitle: ~ 
       # Other identifier.... 

      api: # Api configuration (can be null if no API) 
       consumer_key: ~ 
       consumer_secret: ~ 
       # Others parameters... 

      parameters: 
       label: "Media 1" # Label in the front Default : generated with the name 
       page: 
        factor: 50 # Factor (default 20) 
        styles: 
         style1: 
          css_class: class1 
         style2: 
          css_class: class2 
         # Other styles... 
     category.type.subtype2: #parameters..... 

我写这段代码的配置:

$rootNode = $treeBuilder->root('media'); 

    $rootNode 
     ->children() 
      ->arrayNode("medias") 
       ->prototype('array') 
        ->children() 
         ->scalarNode('reference') 
          ->isRequired() 
         ->end() 

         ->scalarNode('service')->end() 

         ->arrayNode("identifiers") 
          ->prototype('array') 
           ->children() 
            ->scalarNode("label")->end() 
            ->scalarNode("key")->end() 
           ->end() 
          ->end() 
         ->end() 

         ->arrayNode("api") 
          ->prototype('scalar')->end() 
         ->end() 

         ->arrayNode("parameters") 
          ->scalarNode("label")->end() 

          ->arrayNode("page") 
           ->children() 
            ->integerNode("factor")->end() 

            ->arrayNode("styles") 
             ->prototype('array') 
              ->children() 
               ->scalarNode("css_class")->end() 
              ->end() 
             ->end() 
            ->end() 

           ->end() 
          ->end() 

         ->end() 

        ->end() 
       ->end() 
      ->end() 
     ->end() 
    ; 

但我已经错误:

调用未定义的方法Symfony \ Component \ Config \ Definition \ Builder \ ArrayNodeDefinition :: scalarNode()

而且我是绝对已经不知道哪里来此错误:/

+0

哪条线的问题?您已从错误中移除该信息。 –

+0

CLI并未指示我行:/ – graille

回答

1

你没有指定哪一行代码是问题,但对我来说,它看起来像你忘了后parameters节点调用children()方法定义:

->arrayNode("parameters") 
    ->scalarNode("label")->end() 

它应该是这样的:

->arrayNode("parameters") 
    ->children() 
     ->scalarNode("label")->end() 
     // other nodes 
    ->end() 
+0

我很蠢......非常感谢! :) – graille