Reputation: 1231
I'm trying to create this configuration on 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.....
I've written this code :
$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()
;
But I've the error :
Call to undefined method Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition::scalarNode()
And I've absolutly no idea where this error come from :/
Upvotes: 0
Views: 43
Reputation: 15696
You didn't specified which line of code is the issue, but for me it looks like you forgot to call children()
method after parameters
node definition:
->arrayNode("parameters")
->scalarNode("label")->end()
It should be something like:
->arrayNode("parameters")
->children()
->scalarNode("label")->end()
// other nodes
->end()
Upvotes: 1