Php 带批注的symfony2路由不工作
我刚刚下载了symfony2,并开始通过注释进行路由。我在为使用注释而创建的包中设置了app/config/routing.yml,并删除了Acme包及其所有路由引用。也就是说,我曾尝试在我的控制器中创建两个不同的路由注释,如@route(“/”)和@route(“/hello/{name}”),但我总是遇到404错误(使用dev环境)。如果我在routing.yml中添加路由,即使路由配置为使用注释,它也可以正常工作。不管出于什么原因,我的注释似乎被忽略了 这是我的app/config/routing.yml:Php 带批注的symfony2路由不工作,php,symfony,Php,Symfony,我刚刚下载了symfony2,并开始通过注释进行路由。我在为使用注释而创建的包中设置了app/config/routing.yml,并删除了Acme包及其所有路由引用。也就是说,我曾尝试在我的控制器中创建两个不同的路由注释,如@route(“/”)和@route(“/hello/{name}”),但我总是遇到404错误(使用dev环境)。如果我在routing.yml中添加路由,即使路由配置为使用注释,它也可以正常工作。不管出于什么原因,我的注释似乎被忽略了 这是我的app/config/rou
DanDefaultBundle:
resource: "@DanDefaultBundle/Controller/"
type: annotation
prefix: /
这是我的控制器方法:
/**
* @Route("/")
* @Template()
*/
public function indexAction()
{
return array('name' => 123);
}
我已经包括了Sensio\Bundle\FrameworkExtraBundle\Configuration\Route名称空间-就我所知,我在文档中看到的一切都是正确的。我忽略了什么导致symfony2似乎忽略了我的路由注释?同样,如果我将路由添加到路由yaml中,那么一切都可以正常工作,因此我的包也可以正常工作,但是注释似乎被忽略了
谢谢
丹
更新:
因为我是在开发环境中操作的,所以看起来除了routing.yml之外,我还必须将路由添加到routing_dev.yml。我想这就是为什么在开发和生产之间有不同的路线?我想必须特别小心,以确保这些路由保持同步?如果您在routing.yml中使用Route Prefix,您意外地从
routing\u dev.yml
中删除了routing.yml
必须在类声明上方声明前缀,如下所示:
/**
* @Route("/")
*/
class PostController extends Controller
{
/**
* @Route("/")
* @Template()
*/
public function indexAction()
{
}
/**
* @Route("{id}")
* @Template()
*/
public function showAction($id)
{
}
}
在我看来,好像你不小心将routing.yml从routing_dev.yml中删除了。确实如此。我需要添加回:_main:resource:routing.yml