mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-03-12 02:26:09 +03:00
Fixing FormModelDescriber entity form type description regression
This commit is contained in:
parent
4f42b5611f
commit
22ec4fb83b
@ -225,7 +225,15 @@ final class FormModelDescriber implements ModelDescriberInterface, ModelRegistry
|
||||
do {
|
||||
$class = get_class($type->getInnerType());
|
||||
|
||||
if (FormType::class !== $class && 0 === strpos($class, 'Symfony\Component\Form\Extension\Core\Type\\')) {
|
||||
if (FormType::class === $class) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ('entity' === $type->getBlockPrefix()) {
|
||||
return $type;
|
||||
}
|
||||
|
||||
if (0 === strpos($class, 'Symfony\Component\Form\Extension\Core\Type\\')) {
|
||||
return $type;
|
||||
}
|
||||
} while ($type = $type->getParent());
|
||||
|
31
Tests/Functional/Form/EntityType.php
Normal file
31
Tests/Functional/Form/EntityType.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the NelmioApiDocBundle package.
|
||||
*
|
||||
* (c) Nelmio
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Nelmio\ApiDocBundle\Tests\Functional\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class EntityType extends AbstractType
|
||||
{
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver
|
||||
->setDefault('multiple', false)
|
||||
->setRequired('class');
|
||||
}
|
||||
|
||||
public function getParent(): string
|
||||
{
|
||||
return ChoiceType::class;
|
||||
}
|
||||
}
|
@ -36,6 +36,7 @@ class UserType extends AbstractType
|
||||
'required' => false,
|
||||
])
|
||||
->add('quz', DummyType::class, ['documentation' => ['type' => 'string', 'description' => 'User type.'], 'required' => false])
|
||||
->add('entity', EntityType::class, ['class' => 'Entity'])
|
||||
->add('extended_builtin', ExtendedBuiltinType::class, ['required_option' => 'foo']);
|
||||
}
|
||||
|
||||
|
@ -243,12 +243,16 @@ class FunctionalTest extends WebTestCase
|
||||
'type' => 'string',
|
||||
'description' => 'User type.',
|
||||
],
|
||||
'entity' => [
|
||||
'type' => 'string',
|
||||
'format' => 'Entity id',
|
||||
],
|
||||
'extended_builtin' => [
|
||||
'type' => 'string',
|
||||
'enum' => ['foo', 'bar'],
|
||||
],
|
||||
],
|
||||
'required' => ['dummy', 'dummies', 'extended_builtin'],
|
||||
'required' => ['dummy', 'dummies', 'entity', 'extended_builtin'],
|
||||
], $this->getModel('UserType')->toArray());
|
||||
|
||||
$this->assertEquals([
|
||||
|
Loading…
x
Reference in New Issue
Block a user