我试图在Symfony上创建此配置
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 :(得分:1)
您没有指定哪一行代码是问题,但对我而言,您似乎忘记在children()
节点定义后调用parameters
方法:
->arrayNode("parameters")
->scalarNode("label")->end()
应该是这样的:
->arrayNode("parameters")
->children()
->scalarNode("label")->end()
// other nodes
->end()