We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
7.3.0
This issue started happening after updating symfony/type-info (v7.2.5 => v7.3.0). Which makes sense given the changes added here.
symfony/type-info
(v7.2.5 => v7.3.0)
DomainException: Unhandled "JoinColumnData" identifier. in vendor/symfony/type-info/TypeResolver/StringTypeResolver.php:297 Stack trace: #0 vendor/symfony/type-info/TypeResolver/StringTypeResolver.php(185): Symfony\Component\TypeInfo\TypeResolver\StringTypeResolver->resolveCustomIdentifier('JoinColumnData', Object(Symfony\Component\TypeInfo\TypeContext\TypeContext)) #1 vendor/symfony/type-info/TypeResolver/StringTypeResolver.php(207): Symfony\Component\TypeInfo\TypeResolver\StringTypeResolver->getTypeFromNode(Object(PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode), Object(Symfony\Component\TypeInfo\TypeContext\TypeContext)) #2 [internal function]: Symfony\Component\TypeInfo\TypeResolver\StringTypeResolver->{closure:Symfony\Component\TypeInfo\TypeResolver\StringTypeResolver::getTypeFromNode():207}(Object(PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode)) #3 vendor/symfony/type-info/TypeResolver/StringTypeResolver.php(207): array_map(Object(Closure), Array) #4 vendor/symfony/type-info/TypeResolver/StringTypeResolver.php(110): Symfony\Component\TypeInfo\TypeResolver\StringTypeResolver->getTypeFromNode(Object(PHPStan\PhpDocParser\Ast\Type\GenericTypeNode), Object(Symfony\Component\TypeInfo\TypeContext\TypeContext)) #5 vendor/symfony/type-info/TypeResolver/StringTypeResolver.php(86): Symfony\Component\TypeInfo\TypeResolver\StringTypeResolver->getTypeFromNode(Object(PHPStan\PhpDocParser\Ast\Type\ArrayShapeNode), Object(Symfony\Component\TypeInfo\TypeContext\TypeContext)) #6 vendor/symfony/type-info/TypeContext/TypeContextFactory.php(207): Symfony\Component\TypeInfo\TypeResolver\StringTypeResolver->resolve('array{cache?: a...', Object(Symfony\Component\TypeInfo\TypeContext\TypeContext)) #7 vendor/symfony/type-info/TypeContext/TypeContextFactory.php(74): Symfony\Component\TypeInfo\TypeContext\TypeContextFactory->collectTypeAliases(Object(ReflectionClass), Object(Symfony\Component\TypeInfo\TypeContext\TypeContext)) #8 vendor/symfony/type-info/TypeContext/TypeContextFactory.php(217): Symfony\Component\TypeInfo\TypeContext\TypeContextFactory->createFromClassName('Doctrine\\ORM\\Ma...') #9 vendor/symfony/type-info/TypeContext/TypeContextFactory.php(74): Symfony\Component\TypeInfo\TypeContext\TypeContextFactory->collectTypeAliases(Object(ReflectionClass), Object(Symfony\Component\TypeInfo\TypeContext\TypeContext)) #10 vendor/symfony/property-info/Extractor/PhpStanExtractor.php(209): Symfony\Component\TypeInfo\TypeContext\TypeContextFactory->createFromClassName('Doctrine\\ORM\\Pe...', 'Doctrine\\ORM\\Pe...') #11 vendor/symfony/property-info/PropertyInfoExtractor.php(71): Symfony\Component\PropertyInfo\Extractor\PhpStanExtractor->getType('Doctrine\\ORM\\Pe...', 'owner', Array) #12 vendor/symfony/property-info/PropertyInfoCacheExtractor.php(87): Symfony\Component\PropertyInfo\PropertyInfoExtractor->getType('Doctrine\\ORM\\Pe...', 'owner', Array) #13 vendor/symfony/validator/Mapping/Loader/PropertyInfoLoader.php(202): Symfony\Component\PropertyInfo\PropertyInfoCacheExtractor->getType('Doctrine\\ORM\\Pe...', 'owner') #14 vendor/symfony/validator/Mapping/Loader/PropertyInfoLoader.php(75): Symfony\Component\Validator\Mapping\Loader\PropertyInfoLoader->getPropertyTypes('Doctrine\\ORM\\Pe...', 'owner') #15 vendor/symfony/validator/Mapping/Loader/LoaderChain.php(48): Symfony\Component\Validator\Mapping\Loader\PropertyInfoLoader->loadClassMetadata(Object(Symfony\Component\Validator\Mapping\ClassMetadata)) #16 vendor/symfony/validator/Mapping/Factory/LazyLoadingMetadataFactory.php(96): Symfony\Component\Validator\Mapping\Loader\LoaderChain->loadClassMetadata(Object(Symfony\Component\Validator\Mapping\ClassMetadata)) #17 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(293): Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory->getMetadataFor(Object(Doctrine\ORM\PersistentCollection)) #18 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(129): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateObject(Object(Doctrine\ORM\PersistentCollection), 'data.userGenera...', Array, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #19 vendor/symfony/validator/Constraints/ValidValidator.php(36): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate(Object(Doctrine\ORM\PersistentCollection), NULL, Array) #20 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(750): Symfony\Component\Validator\Constraints\ValidValidator->validate(Object(Doctrine\ORM\PersistentCollection), Object(Symfony\Component\Validator\Constraints\Valid)) #21 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(595): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup(Object(Doctrine\ORM\PersistentCollection), '000000000001e93...', Object(Symfony\Component\Validator\Mapping\PropertyMetadata), 'profile', Object(Symfony\Component\Validator\Context\ExecutionContext)) #22 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(508): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode(Object(Doctrine\ORM\PersistentCollection), Object(Proxies\__CG__\Chess\WebBundle\Entity\User), '000000000001e93...', Object(Symfony\Component\Validator\Mapping\PropertyMetadata), 'data.userGenera...', Array, NULL, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #23 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(299): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateClassNode(Object(Proxies\__CG__\Chess\WebBundle\Entity\User), '000000000001e93...', Object(Symfony\Component\Validator\Mapping\ClassMetadata), 'data', Array, NULL, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #24 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(129): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateObject(Object(Proxies\__CG__\Chess\WebBundle\Entity\User), 'data', Array, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #25 vendor/symfony/form/Extension/Validator/Constraints/FormValidator.php(105): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate(Object(Proxies\__CG__\Chess\WebBundle\Entity\User), NULL, Array) #26 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(750): Symfony\Component\Form\Extension\Validator\Constraints\FormValidator->validate(Object(Symfony\Component\Form\Form), Object(Symfony\Component\Form\Extension\Validator\Constraints\Form)) #27 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(483): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup(Object(Symfony\Component\Form\Form), '000000000001fcf...', Object(Symfony\Component\Validator\Mapping\ClassMetadata), 'Default', Object(Symfony\Component\Validator\Context\ExecutionContext)) #28 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(299): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateClassNode(Object(Symfony\Component\Form\Form), '000000000001fcf...', Object(Symfony\Component\Validator\Mapping\ClassMetadata), '', Array, NULL, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #29 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(129): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateObject(Object(Symfony\Component\Form\Form), '', Array, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #30 vendor/symfony/validator/Validator/RecursiveValidator.php(81): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate(Object(Symfony\Component\Form\Form), NULL, Array) #31 vendor/symfony/form/Extension/Validator/EventListener/ValidationListener.php(43): Symfony\Component\Validator\Validator\RecursiveValidator->validate(Object(Symfony\Component\Form\Form)) #32 vendor/symfony/event-dispatcher/EventDispatcher.php(206): Symfony\Component\Form\Extension\Validator\EventListener\ValidationListener->validateForm(Object(Symfony\Component\Form\Event\PostSubmitEvent), 'form.post_submi...', Object(Symfony\Component\EventDispatcher\EventDispatcher)) #33 vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, 'form.post_submi...', Object(Symfony\Component\Form\Event\PostSubmitEvent)) #34 vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php(28): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(Symfony\Component\Form\Event\PostSubmitEvent), 'form.post_submi...') #35 vendor/symfony/form/Form.php(585): Symfony\Component\EventDispatcher\ImmutableEventDispatcher->dispatch(Object(Symfony\Component\Form\Event\PostSubmitEvent), 'form.post_submi...') Next Symfony\Component\TypeInfo\Exception\UnsupportedException: Cannot resolve "array{cache?: array, cascade: array<string>, declared?: class-string, fetch: mixed, fieldName: string, id?: bool, inherited?: class-string, indexBy?: string, inversedBy: (string | null), isCascadeRemove: bool, isCascadePersist: bool, isCascadeRefresh: bool, isCascadeMerge: bool, isCascadeDetach: bool, isOnDeleteCascade?: bool, isOwningSide: bool, joinColumns?: array<JoinColumnData>, joinColumnFieldNames?: array<string, string>, joinTable?: array, joinTableColumns?: list<mixed>, mappedBy: (string | null), orderBy?: array, originalClass?: class-string, originalField?: string, orphanRemoval?: bool, relationToSourceKeyColumns?: array, relationToTargetKeyColumns?: array, sourceEntity: class-string, sourceToTargetKeyColumns?: array<string, string>, targetEntity: class-string, targetToSourceKeyColumns?: array<string, string>, type: int, unique?: bool}". in vendor/symfony/type-info/TypeResolver/StringTypeResolver.php:90 Stack trace: #0 vendor/symfony/type-info/TypeContext/TypeContextFactory.php(207): Symfony\Component\TypeInfo\TypeResolver\StringTypeResolver->resolve('array{cache?: a...', Object(Symfony\Component\TypeInfo\TypeContext\TypeContext)) #1 vendor/symfony/type-info/TypeContext/TypeContextFactory.php(74): Symfony\Component\TypeInfo\TypeContext\TypeContextFactory->collectTypeAliases(Object(ReflectionClass), Object(Symfony\Component\TypeInfo\TypeContext\TypeContext)) #2 vendor/symfony/type-info/TypeContext/TypeContextFactory.php(217): Symfony\Component\TypeInfo\TypeContext\TypeContextFactory->createFromClassName('Doctrine\\ORM\\Ma...') #3 vendor/symfony/type-info/TypeContext/TypeContextFactory.php(74): Symfony\Component\TypeInfo\TypeContext\TypeContextFactory->collectTypeAliases(Object(ReflectionClass), Object(Symfony\Component\TypeInfo\TypeContext\TypeContext)) #4 vendor/symfony/property-info/Extractor/PhpStanExtractor.php(209): Symfony\Component\TypeInfo\TypeContext\TypeContextFactory->createFromClassName('Doctrine\\ORM\\Pe...', 'Doctrine\\ORM\\Pe...') #5 vendor/symfony/property-info/PropertyInfoExtractor.php(71): Symfony\Component\PropertyInfo\Extractor\PhpStanExtractor->getType('Doctrine\\ORM\\Pe...', 'owner', Array) #6 vendor/symfony/property-info/PropertyInfoCacheExtractor.php(87): Symfony\Component\PropertyInfo\PropertyInfoExtractor->getType('Doctrine\\ORM\\Pe...', 'owner', Array) #7 vendor/symfony/validator/Mapping/Loader/PropertyInfoLoader.php(202): Symfony\Component\PropertyInfo\PropertyInfoCacheExtractor->getType('Doctrine\\ORM\\Pe...', 'owner') #8 vendor/symfony/validator/Mapping/Loader/PropertyInfoLoader.php(75): Symfony\Component\Validator\Mapping\Loader\PropertyInfoLoader->getPropertyTypes('Doctrine\\ORM\\Pe...', 'owner') #9 vendor/symfony/validator/Mapping/Loader/LoaderChain.php(48): Symfony\Component\Validator\Mapping\Loader\PropertyInfoLoader->loadClassMetadata(Object(Symfony\Component\Validator\Mapping\ClassMetadata)) #10 vendor/symfony/validator/Mapping/Factory/LazyLoadingMetadataFactory.php(96): Symfony\Component\Validator\Mapping\Loader\LoaderChain->loadClassMetadata(Object(Symfony\Component\Validator\Mapping\ClassMetadata)) #11 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(293): Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory->getMetadataFor(Object(Doctrine\ORM\PersistentCollection)) #12 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(129): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateObject(Object(Doctrine\ORM\PersistentCollection), 'data.userGenera...', Array, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #13 vendor/symfony/validator/Constraints/ValidValidator.php(36): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate(Object(Doctrine\ORM\PersistentCollection), NULL, Array) #14 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(750): Symfony\Component\Validator\Constraints\ValidValidator->validate(Object(Doctrine\ORM\PersistentCollection), Object(Symfony\Component\Validator\Constraints\Valid)) #15 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(595): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup(Object(Doctrine\ORM\PersistentCollection), '000000000001e93...', Object(Symfony\Component\Validator\Mapping\PropertyMetadata), 'profile', Object(Symfony\Component\Validator\Context\ExecutionContext)) #16 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(508): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode(Object(Doctrine\ORM\PersistentCollection), Object(Proxies\__CG__\Chess\WebBundle\Entity\User), '000000000001e93...', Object(Symfony\Component\Validator\Mapping\PropertyMetadata), 'data.userGenera...', Array, NULL, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #17 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(299): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateClassNode(Object(Proxies\__CG__\Chess\WebBundle\Entity\User), '000000000001e93...', Object(Symfony\Component\Validator\Mapping\ClassMetadata), 'data', Array, NULL, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #18 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(129): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateObject(Object(Proxies\__CG__\Chess\WebBundle\Entity\User), 'data', Array, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #19 vendor/symfony/form/Extension/Validator/Constraints/FormValidator.php(105): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate(Object(Proxies\__CG__\Chess\WebBundle\Entity\User), NULL, Array) #20 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(750): Symfony\Component\Form\Extension\Validator\Constraints\FormValidator->validate(Object(Symfony\Component\Form\Form), Object(Symfony\Component\Form\Extension\Validator\Constraints\Form)) #21 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(483): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup(Object(Symfony\Component\Form\Form), '000000000001fcf...', Object(Symfony\Component\Validator\Mapping\ClassMetadata), 'Default', Object(Symfony\Component\Validator\Context\ExecutionContext)) #22 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(299): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateClassNode(Object(Symfony\Component\Form\Form), '000000000001fcf...', Object(Symfony\Component\Validator\Mapping\ClassMetadata), '', Array, NULL, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #23 vendor/symfony/validator/Validator/RecursiveContextualValidator.php(129): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateObject(Object(Symfony\Component\Form\Form), '', Array, 1, Object(Symfony\Component\Validator\Context\ExecutionContext)) #24 vendor/symfony/validator/Validator/RecursiveValidator.php(81): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate(Object(Symfony\Component\Form\Form), NULL, Array) #25 vendor/symfony/form/Extension/Validator/EventListener/ValidationListener.php(43): Symfony\Component\Validator\Validator\RecursiveValidator->validate(Object(Symfony\Component\Form\Form)) #26 vendor/symfony/event-dispatcher/EventDispatcher.php(206): Symfony\Component\Form\Extension\Validator\EventListener\ValidationListener->validateForm(Object(Symfony\Component\Form\Event\PostSubmitEvent), 'form.post_submi...', Object(Symfony\Component\EventDispatcher\EventDispatcher)) #27 vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, 'form.post_submi...', Object(Symfony\Component\Form\Event\PostSubmitEvent)) #28 vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php(28): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(Symfony\Component\Form\Event\PostSubmitEvent), 'form.post_submi...') #29 vendor/symfony/form/Form.php(585): Symfony\Component\EventDispatcher\ImmutableEventDispatcher->dispatch(Object(Symfony\Component\Form\Event\PostSubmitEvent), 'form.post_submi...')
Arguments that break PropertyInfoLoader are:
PropertyInfoLoader
Symfony\Component\Validator\Mapping\Loader\PropertyInfoLoader::getPropertyTypes('Doctrine\ORM\PersistentCollection', 'owner')
doctrine/orm version is 2.20.0.
doctrine/orm
2.20.0
When I skip owner field, it works.
owner
No response
Field from which this is coming from is defined as OneToMany:
OneToMany
#[ORM\OneToMany(targetEntity: UserGeneratedContent::class, mappedBy: 'user', cascade: ['persist', 'remove'])] protected Collection $userGeneratedContent;
ManyToOne:
ManyToOne
#[ORM\Table(name: 'user_generated_content')] class UserGeneratedContent { #[ORM\JoinColumn(name: 'user_id', referencedColumnName: 'user_id', columnDefinition: 'INT(10) UNSIGNED NOT NULL')] #[ORM\Id] #[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'userGeneratedContent')] protected User $user;
The text was updated successfully, but these errors were encountered:
Seems like it's a duplicate of #60598. It should be fixed in the next bugfix version 🙂
Sorry, something went wrong.
Let's close this as a duplicate of #60598.
No branches or pull requests
Symfony version(s) affected
7.3.0
Description
This issue started happening after updating
symfony/type-info
(v7.2.5 => v7.3.0)
. Which makes sense given the changes added here.How to reproduce
Arguments that break
PropertyInfoLoader
are:doctrine/orm
version is2.20.0
.When I skip
owner
field, it works.Possible Solution
No response
Additional Context
Field from which this is coming from is defined as
OneToMany
:ManyToOne
:The text was updated successfully, but these errors were encountered: