-
-
Notifications
You must be signed in to change notification settings - Fork 9.7k
Closed
Labels
Description
Symfony version(s) affected
6.2
Description
I'm working on migration 6.1 to 6.2 and I refactor ParamConverter
to MapEntity
like this post and this doc.
But MapEntity
seems not working. Miss something?
How to reproduce
Run this route:
<?php
namespace App\Controller;
use App\Entity\Test;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Bridge\Doctrine\Attribute\MapEntity;
class TestController extends AbstractController
{
#[Route('/mapentity1/{tid}/', name: 'mapentity_test1', requirements: ['tid' => '\d+'])]
public function mapentity_test1(#[MapEntity(id: 'tid')] Test $test): Response
{
dd($test);
}
#[Route('/mapentity2/{tid}/', name: 'mapentity_test2', requirements: ['tid' => '\d+'])]
public function mapentity_test2(#[MapEntity(mapping: ['id' => 'tid'])] Test $test): Response
{
dd($test);
}
}
I have create a small application on phpsandbox to test that. Need to call https://ovkrp.ciroue.com/mapentity1/1 or https://ovkrp.ciroue.com/mapentity2/1.
The route with a ParamConverter
is working: https://ovkrp.ciroue.com/paramconvertor/1 is working.
You can download with this zip: ovkrp.zip
Possible Solution
No response
Additional Context
LogicException:
Unable to guess how to get a Doctrine instance from the request information for parameter "test".
at vendor/sensio/framework-extra-bundle/src/Request/ParamConverter/DoctrineParamConverter.php:97
at Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\DoctrineParamConverter->apply(object(Request), object(ParamConverter))
(vendor/sensio/framework-extra-bundle/src/Request/ParamConverter/ParamConverterManager.php:84)
at Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterManager->applyConverter(object(Request), object(ParamConverter))
(vendor/sensio/framework-extra-bundle/src/Request/ParamConverter/ParamConverterManager.php:48)
at Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterManager->apply(object(Request), array('test' => object(ParamConverter)))
(vendor/sensio/framework-extra-bundle/src/EventListener/ParamConverterListener.php:72)
at Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener->onKernelController(object(ControllerEvent), 'kernel.controller', object(TraceableEventDispatcher))
(vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115)
at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(ControllerEvent), 'kernel.controller', object(TraceableEventDispatcher))
(vendor/symfony/event-dispatcher/EventDispatcher.php:206)
at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.controller', object(ControllerEvent))
(vendor/symfony/event-dispatcher/EventDispatcher.php:56)
at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(ControllerEvent), 'kernel.controller')
(vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:127)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(ControllerEvent), 'kernel.controller')
(vendor/symfony/http-kernel/HttpKernel.php:151)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
(vendor/symfony/http-kernel/HttpKernel.php:74)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
(vendor/symfony/http-kernel/Kernel.php:184)
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
(vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
(vendor/autoload_runtime.php:29)
at require_once('/var/www/vendor/autoload_runtime.php')
(public/index.php:5)