我使用注释设置了一条路线。看起来对我来说,Symfony2说这是错的。这是路线:
@Route("/news/{id}/{slug}", name="newsarticle")
以下是我认为与路线匹配的示例网址:
这是功能骨架:
public function newsArticleAction($id, $slug)
{
}
我在这里缺少什么?我收到500错误,日志显示:
[2012-10-30 20:36:35] request.INFO:匹配路由“newsarticle”(参数:“_ control”:“App \ SiteBundle \ Controller \ DefaultController :: newsArticleAction”,“id”:“202 “,”slu“”:“my-news-title”,“_ lute”:“newsarticle”)[] [] [2012-10-30 20:36:36] app.INFO:来自监听器:“newsarticle”路由有一些缺少必需参数(“id”)。 [] [] [2012-10-30 20:36:36] request.CRITICAL:Symfony \ Component \ Routing \ Exception \ MissingMandatoryParametersException:“newsarticle”路由有一些缺少必需参数(“id”)。 (未捕获的例外)/home/user/app/cache/prod/classes.php第676行[] []
答案 0 :(得分:10)
在将URL与路由匹配时,但在从路由生成URL时,此错误会出现而不是。
在您的项目中搜索path('newsarticle'
或generateUrl('newsarticle'
。您应该尝试生成URL而不传递所有必需的参数 - 例如:
{{ path('newsarticle', {'slug': news.slug} }}
虽然看起来像:
{{ path('newsarticle', {'id': news.id, 'slug': news.slug} }}