【问题标题】:Symfony2 exceptionSymfony2 异常
【发布时间】:2012-10-19 13:10:47
【问题描述】:

我是 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
{
}

但是,当我尝试加载以下 URL 时:“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" 包已正确注册并加载到应用程序内核类中。

【问题讨论】:

  • 可以肯定的是,你是否清除了缓存(app/console cache:clear -env=dev)
  • 我没有使用控制台..但是,我已经手动清除了 Symfony/app/cache 文件夹..
  • 请大家给我解决问题的方法
  • 顺便说一句。开始使用 CamelCase 而非 underscore_case

标签: symfony


【解决方案1】:

尝试从 routing.yml 中删除 type: 注释

编辑:

你的 app/cofig/routing.yml 有

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

*注意:我删除了type: annotation

所以你在projectnew_bundle/Resources/config/routing.yml中包含的任何路由上设置前缀/start

那么你的@projectnew_bundle/Resources/config/routing.yml 有:

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

它使用start/hello/{name} 模式创建路由start/hello/{name},添加app/config/routing.yml 的前缀,您的最终路由是/startstart/hello/{name},而不是您所期望的/start/hello/{name}

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

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

【讨论】:

  • 现在,我从 routing.yml 中删除了 type: 注释 ... 现在显示 404 not found 错误:'No route found for "GET /start/hello/Riten" '..那么,我现在应该怎么做才能解决这个问题??
  • 谢谢@Daniel.. 你真的帮我解决了这个问题.. :)
【解决方案2】:

如果更改为 type: 注释,则必须将资源路径更改为控制器路径。

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

【讨论】:

    猜你喜欢
    • 2014-08-02
    • 2013-03-14
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多