我现在正在关注 symblog 教程,使用 Symfony 2.2.2
2.3 有一些重大变化,所以我使用 2.2 来获取有关已弃用函数的信息。但问题是:
创建评论表单后,我收到一条错误消息,提示找不到 GET 评论的路由:新控制器。
这似乎是 Twig 中的更新,以前可以使用以下代码:
{% render 'BloggerBlogBundle:Comment:new' with { 'blog_id': blog.id } %}
您现在必须使用:
{% render controller('BloggerBlogBundle:Comment:new') with { 'blog_id': blog.id } %}
之后,我收到另一个错误,说明如下:
控制器 "Blogger\BlogBundle\Controller\CommentController::newAction()" 要求您为 "$blog_id" 参数提供一个值(因为没有默认值或者因为在此参数之后有一个非可选参数)。
据我所知,with { 'blog_id': blog.id }
应该传递这个论点。但事实并非如此。
本教程的评论很广泛,但没有提到这一点。而且我对 twig 和 symfony 不是很熟悉,我不知道在哪里寻找问题。
编辑:要清楚,我是从一个已经存在的树枝文件中调用这个控制器函数,而不是从 PHP 文件中。没有为它定义路由。然后该操作将调用另一个 twig 文件以将表单元素包含到页面中。本教程解释了这是为了使表单可以在站点的各个部分重复使用,从而无需制作大量的表单元素,这些元素基本上都做同样的事情。