Drupal 8 - 致命错误:无法重新声明课程

时间:2017-02-20 10:02:32

标签: drupal drupal-8

我是Drupal 8的新手。

现在,我正在使用8.2.6版本。我正在关注link的教程。

我是完全一样的。

但标签菜单没有显示,我该如何访问该模块? 当我清除所有缓存时,我收到了这个错误:

Fatal error: Cannot redeclare class Drupal\bd_contact\AdminController in D:\Dropbox\projects\drupal-8.2.6\modules\custom\bd_contact\src\Controller\AdminController.php on line 7

任何人都知道我为什么会遇到这个错误?

3 个答案:

答案 0 :(得分:2)

当您尝试创建已创建的课程时,会导致PHP错误无法重新声明课程

例如:

//create one time
class AdminController {}

//and recreated the class with the same name
class AdminController {}

如果AdminController.php文件有两个具有相同名称的类,则需要对其进行验证,然后在GitHub项目link项目中与本教程的源代码进行比较。

答案 1 :(得分:0)

可能没有很好地选择控制器的名称,因为在Drupal核心中已经有一个这样的控制器。 https://api.drupal.org/api/drupal/core!modules!system!src!Controller!AdminController.php/class/AdminController/8.2.x

使用命名空间时,它不应该导致问题,而是尝试在类文件和路由文件中重命名控制器。

答案 2 :(得分:0)

由于几乎没有人会重新声明相同的类,尤其是在同一控制器文件(即仅一个类)上,因此我认为此问题是由于缺少像上述同事所述的名称空间所致。

只需在班级顶部添加如下一行:

namespace Drupal\YOUR_MODULE\Controller;

我知道这个问题很旧,但是我是最近才到这里的,找不到能解决我问题的确切答案,希望对您有所帮助。