【问题标题】:symfony2 routing failed - cannot redeclare classsymfony2 路由失败 - 无法重新声明类
【发布时间】:2012-02-01 09:17:26
【问题描述】:

我正在尝试将我的路由从注释更改为 thr routing.yml。 现在这是我的 routing_dev.yml 中唯一的配置:

user.index:
  pattern:  /
  defaults: { _controller: AcmeMyBundle:User/UserIndex:index }    

这是错误:

Fatal error: Cannot redeclare class Acme\MyBundle\Controller\User\UserIndexController in C:\Users\gp\Desktop\xampp\htdocs\project\src\Acme\MyBundle\Controller\User\UserIndexController.php on line 56

为什么会这样?这确实是唯一具有此名称的类。我在 UserIndexController 中没有注释。

有人知道吗? 非常感谢。

【问题讨论】:

  • 我确定您认为它是唯一具有此名称的类,但 PHP 因此错误而失败是有原因的 :) 不,它与路由无关。此外,您的 _controller 配置看起来很奇怪 "IdiotsP1Bundle:User/UserIndex:index" - 这真的有效吗?中间有斜线?
  • userindexController 位于 Controller/User/UseriIndexcontroller.php 文件夹中,当我发现 User/ 时,路由找不到类

标签: symfony


【解决方案1】:

尝试在您的项目中 grep/find Acme\MyBundle\Controller\User\UserIndexController

您可能真的将类声明了两次。

然后,尝试替换

`AcmeMyBundle:User/UserIndex:index` 

AcmeMyBundle:User\\UserIndex:index

根据 symfony 的版本,它会搜索“namespace like”和/或“path like”。

【讨论】:

  • 这不是问题,但谢谢。我没有删除用于测试索引的注释,而是使用 twig 渲染函数渲染了 UserIndex:area。我认为其中一个想法是问题,但现在渲染功能也可以工作。谢谢
【解决方案2】:

这也发生在我身上,这是我的控制器文件,我的命名空间错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    相关资源
    最近更新 更多