当我在 Drupal 中启用新菜单(例如 mymodule)时,Drupal 应该能够从 mymodule_menu (hook_menu) 获取菜单项,处理这些菜单项并将菜单项插入到 menu_router 和 menu_links 表中。
然而,我的 Drupal 却无法做到这一点。每次我启用一个模块(我编写的模块或其他人贡献的模块,或核心模块)时,Drupal 似乎没有获取新信息。新启用的模块中定义的菜单项不会被处理并插入到 Drupal 的菜单系统中。这意味着新启用的模块没有机会工作——因为它无法访问。
我确实通过手动将新模块的菜单项信息插入到 menu_router 和 menu_links 表中来修复此问题,然后新菜单开始工作。但如果我每次启用模块时都必须这样做,这将是一场噩梦。
有人遇到过同样的问题吗?如何解决这个问题?
先感谢您。
我不会使用任何 SQL 与菜单表交互,如果编辑错误的记录,可能会发生一些令人讨厌的事情。
您的 hook_menu 代码中一定有错误。可以贴一下吗?
另外,如果您正在开发一个具有菜单条目的模块,我发现在添加/删除链接时调用 mymodule_init() 内部的这两个函数很方便:
cache_clear_all()
menu_router_build()
这将刷新所有缓存并重建菜单和任何调用 hook_menu 的内容。如果之后没有出现,那么您的代码有错误。我想看看。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)