mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-02 15:51:48 +03:00
Add support for embedded forms
This commit is contained in:
parent
bef7da0ef9
commit
fbe9488963
@ -102,6 +102,12 @@ class FormTypeParser implements ParserInterface
|
|||||||
} elseif ('collection' === $type->getName()) {
|
} elseif ('collection' === $type->getName()) {
|
||||||
if (is_string($config->getOption('type')) && isset($this->mapTypes[$config->getOption('type')])) {
|
if (is_string($config->getOption('type')) && isset($this->mapTypes[$config->getOption('type')])) {
|
||||||
$bestType = sprintf('array of %ss', $this->mapTypes[$config->getOption('type')]);
|
$bestType = sprintf('array of %ss', $this->mapTypes[$config->getOption('type')]);
|
||||||
|
} else {
|
||||||
|
// Embedded form collection
|
||||||
|
$subParameters = $this->parseForm($this->formFactory->create($config->getOption('type')), $name . '[]');
|
||||||
|
$parameters = array_merge($parameters, $subParameters);
|
||||||
|
|
||||||
|
continue 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,9 +64,21 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
|
|||||||
'description' => '',
|
'description' => '',
|
||||||
'readonly' => false
|
'readonly' => false
|
||||||
),
|
),
|
||||||
'collection_type[b]' => array(
|
'collection_type[b][][a]' => array(
|
||||||
'dataType' => 'string',
|
'dataType' => 'string',
|
||||||
'required' => true,
|
'required' => true,
|
||||||
|
'description' => 'A nice description',
|
||||||
|
'readonly' => false
|
||||||
|
),
|
||||||
|
'collection_type[b][][b]' => array(
|
||||||
|
'dataType' => 'string',
|
||||||
|
'required' => true,
|
||||||
|
'description' => '',
|
||||||
|
'readonly' => false
|
||||||
|
),
|
||||||
|
'collection_type[b][][c]' => array(
|
||||||
|
'dataType' => 'boolean',
|
||||||
|
'required' => true,
|
||||||
'description' => '',
|
'description' => '',
|
||||||
'readonly' => false
|
'readonly' => false
|
||||||
)
|
)
|
||||||
@ -84,9 +96,21 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
|
|||||||
'description' => '',
|
'description' => '',
|
||||||
'readonly' => false
|
'readonly' => false
|
||||||
),
|
),
|
||||||
'b' => array(
|
'b[][a]' => array(
|
||||||
'dataType' => 'string',
|
'dataType' => 'string',
|
||||||
'required' => true,
|
'required' => true,
|
||||||
|
'description' => 'A nice description',
|
||||||
|
'readonly' => false
|
||||||
|
),
|
||||||
|
'b[][b]' => array(
|
||||||
|
'dataType' => 'string',
|
||||||
|
'required' => true,
|
||||||
|
'description' => '',
|
||||||
|
'readonly' => false
|
||||||
|
),
|
||||||
|
'b[][c]' => array(
|
||||||
|
'dataType' => 'boolean',
|
||||||
|
'required' => true,
|
||||||
'description' => '',
|
'description' => '',
|
||||||
'readonly' => false
|
'readonly' => false
|
||||||
)
|
)
|
||||||
@ -104,9 +128,21 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
|
|||||||
'description' => '',
|
'description' => '',
|
||||||
'readonly' => false
|
'readonly' => false
|
||||||
),
|
),
|
||||||
'b' => array(
|
'b[][a]' => array(
|
||||||
'dataType' => 'string',
|
'dataType' => 'string',
|
||||||
'required' => true,
|
'required' => true,
|
||||||
|
'description' => 'A nice description',
|
||||||
|
'readonly' => false
|
||||||
|
),
|
||||||
|
'b[][b]' => array(
|
||||||
|
'dataType' => 'string',
|
||||||
|
'required' => true,
|
||||||
|
'description' => '',
|
||||||
|
'readonly' => false
|
||||||
|
),
|
||||||
|
'b[][c]' => array(
|
||||||
|
'dataType' => 'boolean',
|
||||||
|
'required' => true,
|
||||||
'description' => '',
|
'description' => '',
|
||||||
'readonly' => false
|
'readonly' => false
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user