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) {
|
if ('collection' === $blockPrefix) {
|
||||||
$subType = $config->getOption('entry_type');
|
$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) {
|
if ('entity' === $blockPrefix) {
|
||||||
|
@ -13,6 +13,7 @@ namespace Nelmio\ApiDocBundle\Tests\Functional\Form;
|
|||||||
|
|
||||||
use Nelmio\ApiDocBundle\Tests\Functional\Entity\User;
|
use Nelmio\ApiDocBundle\Tests\Functional\Entity\User;
|
||||||
use Symfony\Component\Form\AbstractType;
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
|
|
||||||
@ -20,7 +21,11 @@ class UserType extends AbstractType
|
|||||||
{
|
{
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
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)
|
public function configureOptions(OptionsResolver $resolver)
|
||||||
|
@ -13,6 +13,7 @@ namespace Nelmio\ApiDocBundle\Tests\Functional;
|
|||||||
|
|
||||||
use EXSyst\Component\Swagger\Operation;
|
use EXSyst\Component\Swagger\Operation;
|
||||||
use EXSyst\Component\Swagger\Tag;
|
use EXSyst\Component\Swagger\Tag;
|
||||||
|
use Nelmio\ApiDocBundle\Tests\Functional\Form\DummyType;
|
||||||
|
|
||||||
class FunctionalTest extends WebTestCase
|
class FunctionalTest extends WebTestCase
|
||||||
{
|
{
|
||||||
@ -181,8 +182,13 @@ class FunctionalTest extends WebTestCase
|
|||||||
'type' => 'object',
|
'type' => 'object',
|
||||||
'properties' => [
|
'properties' => [
|
||||||
'dummy' => ['$ref' => '#/definitions/DummyType'],
|
'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->getModel('UserType')->toArray());
|
||||||
|
|
||||||
$this->assertEquals([
|
$this->assertEquals([
|
||||||
|
Loading…
x
Reference in New Issue
Block a user