我遇到了问题,请注意以下事项:
使用简单操作的DefaultController:
/**
* @Route("/register")
* @Template
*/
public function indexAction() {
$oForm = $this->createForm(new RegisterType());
return array(
'form' => $oForm->createView()
);
}
在我的树枝模板中,我尝试使用:
<form action="{{ path('register') }}" method="post"></form>
但是我收到以下错误:
An exception has been thrown during the rendering of a template ("Route "register" does not exist.") in EBTSCustomerBundle:Default:index.html.twig at line 2.
当我在app / config / routing.yml中明确定义“register”路由时:
register:
pattern: /register
defaults: { _controller: EBTSCustomerBundle:Controller:Default:index }
然后它工作正常。找不到任何合理的文档,我认为通过注释定义的路径应该在整个应用程序中可见。
任何想法的人?
答案 0 :(得分:33)
注释路由仍然需要导入到routing.yml中,如下所示:
AcmeHelloBundle:
resource: "@AcmeHelloBundle/Controller"
type: annotation
这将告诉路由扫描Controller
的{{1}}目录并导入所有路由。
您可以通过注释 here 找到有关路由的详细信息。该链接还将告诉您如何激活路线,如上所示。
另外,我注意到您的路线注释需要使用Acme\HelloBundle
函数通过name
访问register
参数,否则可以通过path
访问:< / p>
acme_bundlename_controllername_actionname
希望有所帮助!