From 7579a54dcb3d037c06204e0c8077df8e4ecd3e8b Mon Sep 17 00:00:00 2001 From: Maurizio Monticelli Date: Mon, 29 Jul 2024 17:57:15 +0200 Subject: [PATCH] feat: do not create instance getJsonSearchUrl() create a new instance of the entiy, this fails if the entity has construtor parameters --- src/Definition/AbstractDefinition.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/Definition/AbstractDefinition.php b/src/Definition/AbstractDefinition.php index 8d4b532..e32dc85 100644 --- a/src/Definition/AbstractDefinition.php +++ b/src/Definition/AbstractDefinition.php @@ -395,17 +395,12 @@ public function getJsonSearchUrl(string $entityClass): string $metadata = $this->container->get(EntityManagerInterface::class)->getClassMetadata($entityClass); $clazz = new \ReflectionClass($metadata->name); } - try { - $instance = $clazz->newInstance(); - } catch (\Throwable $e) { - throw new \RuntimeException('Could not automatically detect relation definition for class '.$entityClass.'. Please override getJsonSearchUrl() in '.static::class.' or make the Entity Constructor argument less.', previous: $e); - } /** @var DefinitionInterface $definition */ $definition = $this ->container->get(DefinitionManager::class) - ->getDefinitionByEntity($instance) + ->getDefinitionByClassName($clazz::class) ; - if ($definition::hasCapability(Page::JSONSEARCH)) { + if ($definition && $definition::hasCapability(Page::JSONSEARCH)) { return $this->container->get(RouterInterface::class) ->generate($definition::getRoute(Page::JSONSEARCH)) ;