我是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
任何人都知道我为什么会遇到这个错误?
答案 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;
我知道这个问题很旧,但是我是最近才到这里的,找不到能解决我问题的确切答案,希望对您有所帮助。