Я работаю над проектом Symfony2, и я получаю это исключение. У кого-нибудь есть представление о том, что его вызывает?
Необработанное исключение «Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException» с сообщением «Gmjob \ ExaminationBundle \ Entity \ Examination object not found». в / data / apache / www / emploipublic-sf / vendor / sensio / framework-extra bundle / Sensio / Bundle / FrameworkExtraBundle / Request / ParamConverter / DoctrineParamConverter.php: 55 \ nStack
public function apply(Request $request, ConfigurationInterface $configuration)
{
$name = $configuration->getName();
$class = $configuration->getClass();
$options = $this->getOptions($configuration);
// find by identifier?
if (false === $object = $this->find($class, $request, $options, $name)) {
// find by criteria
if (false === $object = $this->findOneBy($class, $request, $options)) {
if ($configuration->isOptional()) {
$object = null;
} else {
throw new \LogicException('Unable to guess how to get a Doctrine instance from the request information.');
}
}
}
if (null === $object && false === $configuration->isOptional()) {
throw new NotFoundHttpException(sprintf('%s object not found.', $class)); // this is line 55
}
$request->attributes->set($name, $object);
return true;
}
вот трассировка стека брошенного исключения:
[Вт.09.09 16:56:03 2014] [ошибка] [клиент 217.89.107.38] Неустранимая ошибка PHP: необнаруженное исключение «Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException» с сообщением «Gmjob \ ExaminationBundle \ Entity \ Examination object not found» «. в /data/apache/www/emploipublic-sf/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/DoctrineParamConverter.php:55\nStack trace: \ n# 0 /data/apache/www/emploipublic-sf/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/ParamConverterManager.php(92): Sensio \ Bundle \ RequestErater \ FrameworkExt DoctrineParamConverter-> apply (Объект (Symfony \ Component \ HttpFoundation \ Request), Объект (Sensio \ Bundle \ FrameworkExtraBundle \ Configuration \ ParamConverter)) \ n
# 1 /data/apache/www/emploipublic-sf/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/ParamConverterManager.php(48): Sensio \ Bundle \ RequestErater \ FrameworkExt ParamConverterManager-> applyConverter (Object (Symfony \ Component \ HttpFoundation \ Request), Объект (Sens в / data / apache / www / emploipublic-sf / vendor / sensio / framework-extra-bundle / Sensio / Bundle / FrameworkExtraBundle / Request / ParamConverter /DoctrineParamConverter.php в строке 55
Ваша проблема не в DoctrineParamConverter
, это в вашем контроллере.
Param Converters — это компоненты, которые преобразуют параметры (хорошо, я знаю, название говорит об этом, но …).
Когда вы пишете:
public function myAction(Request $request)
преобразователь параметров даст вам Request
объект.
И когда ты пишешь:
public function myAction(MyEntityClass $object)
Тогда DoctrineParamConverter
попытается найти сущность Doctrine, соответствующую вашим параметрам маршрутизации.
Я рекомендую Эта статья из документации Symfony.
Других решений пока нет …