mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-02 23:59:26 +03:00
Merge pull request #1126 from kopaygorodsky/feature/form-collection-type
Feature/form collection type
This commit is contained in:
commit
2b15539cc3
@ -100,6 +100,12 @@ final class FormModelDescriber implements ModelDescriberInterface, ModelRegistry
|
||||
}
|
||||
if ('collection' === $blockPrefix) {
|
||||
$subType = $config->getOption('entry_type');
|
||||
$property->setType('array');
|
||||
|
||||
$model = new Model(new Type(Type::BUILTIN_TYPE_OBJECT, false, $subType), null);
|
||||
$property->getItems()->setRef($this->modelRegistry->register($model));
|
||||
$property->setExample(sprintf('[{%s}]', $subType));
|
||||
break;
|
||||
}
|
||||
|
||||
if ('entity' === $blockPrefix) {
|
||||
|
@ -13,6 +13,7 @@ namespace Nelmio\ApiDocBundle\Tests\Functional\Form;
|
||||
|
||||
use Nelmio\ApiDocBundle\Tests\Functional\Entity\User;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
@ -20,7 +21,11 @@ class UserType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('dummy', DummyType::class);
|
||||
$builder
|
||||
->add('dummy', DummyType::class)
|
||||
->add('dummies', CollectionType::class, [
|
||||
'entry_type' => DummyType::class
|
||||
]);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
|
@ -13,6 +13,7 @@ namespace Nelmio\ApiDocBundle\Tests\Functional;
|
||||
|
||||
use EXSyst\Component\Swagger\Operation;
|
||||
use EXSyst\Component\Swagger\Tag;
|
||||
use Nelmio\ApiDocBundle\Tests\Functional\Form\DummyType;
|
||||
|
||||
class FunctionalTest extends WebTestCase
|
||||
{
|
||||
@ -181,8 +182,13 @@ class FunctionalTest extends WebTestCase
|
||||
'type' => 'object',
|
||||
'properties' => [
|
||||
'dummy' => ['$ref' => '#/definitions/DummyType'],
|
||||
'dummies' => [
|
||||
'items' => ['$ref' => '#/definitions/DummyType'],
|
||||
'type' => 'array',
|
||||
'example' => sprintf('[{%s}]', DummyType::class)
|
||||
]
|
||||
],
|
||||
'required' => ['dummy'],
|
||||
'required' => ['dummy', 'dummies'],
|
||||
], $this->getModel('UserType')->toArray());
|
||||
|
||||
$this->assertEquals([
|
||||
|
Loading…
x
Reference in New Issue
Block a user