问题只出现在调试工具栏中。
以下是我怀疑引起问题的代码:
/**
* @Route("/{category_slug}/{slug}", name="content_show")
* @ParamConverter("content", options={"mapping": {"slug": "slug"}})
* @ParamConverter("category", options={"mapping": {"category_slug": "slug"}})
* @Method("GET")
*/
public function show(Category $category, Content $content): Response
{
$contents = $category->getContents();
return $this->render('content/show.html.twig', array(
'category' => $category,
'list' => $contents,
'content' => $content,
));
}
这是唯一一个使用ParamConverter的部分,在错误发生之前是唯一修改的部分。
页面正常显示,所有内容都被找到,但调试工具栏不再起作用,并显示以下消息:
An error occurred while loading the web debug toolbar. Open the web profiler.
而在内部:
App\Entity\Content object not found by the @ParamConverter annotation.
使用NotFoundHttpException
我清除了缓存,但没有改变。 代码仍然可以工作,但没有工具栏很痛苦,我无法弄清楚是什么原因导致这种情况。
我尝试了其他注释,例如:
/**
* @Route("/{category_slug}/{slug}", name="content_show")
* @ParamConverter("category", class="App\Entity\Category", options={"mapping": {"category_slug": "slug"}})
* @Method("GET")
*/
等等。。。 唯一的区别是,如果我从paramconverter中删除内容,它仍然可以工作,但错误会出现在Category上。
提前感谢。
编辑:PHP 7.1.9
Composer json :
"require": {
"php": "^7.1.3",
"ext-iconv": "*",
"sensio/framework-extra-bundle": "^5.1",
"symfony/apache-pack": "^1.0",
"symfony/console": "^4.0",
"symfony/expression-language": "^4.0",
"symfony/flex": "^1.0",
"symfony/form": "^4.0",
"symfony/framework-bundle": "^4.0",
"symfony/lts": "^4@dev",
"symfony/maker-bundle": "^1.0",
"symfony/orm-pack": "^1.0",
"symfony/security-bundle": "^4.0",
"symfony/security-csrf": "^4.0",
"symfony/twig-bundle": "^4.0",
"symfony/validator": "^4.0",
"symfony/yaml": "^4.0",
"vich/uploader-bundle": "^1.8"
},
"require-dev": {
"symfony/dotenv": "^4.0",
"symfony/profiler-pack": "^1.0",
"symfony/web-server-bundle": "^4.0"
},