Symfony2异常

时间:2012-10-19 13:10:48

标签: symfony

我是symfony2的新手。我正在为“Hello {Name}”创建一个简单页面并使用WAMP。和我的routing.yml如下

projectnew_bundle:
    resource: "@projectnew_bundle/Resources/config/routing.yml"
    type:     annotation
    prefix:   /start

和我的@projectnew_bundle / Resources / config / routing.yml如下(projectnew_bundle是src文件夹中\ project \ new_bundle的命名空间):

projectnew_bundle_hello:
    pattern:  start/hello/{name}
    defaults: { _controller: projectnew_bundle:Start:hello }

我还使用"new project\new_bundle\projectnew_bundle()"语法在AppKernel.php中注册了bundle projectnew_bundle。我的\src\project\new_bundle\projectnew_bundle.php如下:

<?php

namespace project\new_bundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class projectnew_bundle extends Bundle
{
}

但是,当我尝试加载以下网址:“http://localhost/symfony_project/Symfony/web/app_dev.php/start/hello/Riten”时,它会给出500内部服务器错误:

  

无法加载资源"@projectnew_bundle/Resources/config/routing.yml"。确保"projectnew_bundle/Resources/config/routing.yml"包已正确注册并加载到应用程序内核类中。

2 个答案:

答案 0 :(得分:3)

尝试从routing.yml中删除type:annotation

编辑:

你的app / cofig / routing.yml有

projectnew_bundle:
    resource: "@projectnew_bundle/Resources/config/routing.yml"
    prefix:   /start

*注意:我删除了type: annotation

因此,您在/start

中包含的任何路线上设置前缀projectnew_bundle/Resources/config/routing.yml

然后您的@projectnew_bundle/Resources/config/routing.yml有:

projectnew_bundle_hello:
    pattern:  start/hello/{name}
    defaults: { _controller: projectnew_bundle:Start:hello }

创建路由projectnew_bundle_hello,其中start/hello/{name}模式添加app/config/routing.yml前缀的前缀为/startstart/hello/{name},而不是/start/hello/{name}正如您所期望的那样。

如果您希望自己的预期路线有效,可以从start移除@projectnew_bundle/Resources/config/routing.yml

命令php app/console router:debug将显示您的路线实际是什么。

答案 1 :(得分:1)

如果更改为键入:annotation,则必须将资源路径更改为控制器路径。

projectnew_bundle:
resource: "@projectnew_bundle/Controller"
type:     annotation
prefix:   /start