gpt4 book ai didi

php - 什么是嵌套模型?它与 Joomla 的菜单项有什么关系?

转载 作者:行者123 更新时间:2023-11-29 21:01:10 25 4
gpt4 key购买 nike

我试图手动将菜单项添加到数据库中。请参阅this question ,当我注意到 #__menu 表中的这两个字段时。在我看来,它们会自动增加 2。例如,如果最新的菜单项有 {lft:121,rgt:122},那么新的菜单项将有 {lft:123,rgt,124}。简短的搜索表明它们与所谓的“嵌套模型”有关,我查看了其他 Joomla 表,很多也有这两个字段。

不明白它们是什么,我只是向表中添加新记录,然后为每个新记录提供这两个字段,并保持自动增量。

今天我尝试通过后端添加新的菜单项并收到此错误消息:

Save failed with the following error: exception 'UnexpectedValueException' with message 'MenusTableMenu::_getNode(1, ) failed.' in /home/p/public_html/libraries/joomla/table/nested.php:1532 Stack trace: #0 /home/p/public_html/libraries/joomla/table/nested.php(773): JTableNested->_getNode(1) #1 /home/p/public_html/libraries/legacy/table/menu.php(243): JTableNested->store(false) #2 /home/p/public_html/administrator/components/com_menus/models/item.php(1258): JTableMenu->store() #3 /home/p/public_html/administrator/components/com_menus/controllers/item.php(267): MenusModelItem->save(Array) #4 /home/p/public_html/libraries/legacy/controller/legacy.php(728): MenusControllerItem->save() #5 /home/p/public_html/administrator/components/com_menus/menus.php(18): JControllerLegacy->execute('apply') #6 /home/p/public_html/libraries/cms/component/helper.php(405): require_once('/home/p/public_...') #7 /home/p/public_html/libraries/cms/component/helper.php(380): JComponentHelper::executeComponent('/home/p/public_...') #8 /home/p/public_html/libraries/cms/application/administrator.php(98): JComponentHelper::renderComponent('com_menus') #9 /home/p/public_html/libraries/cms/application/administrator.php(152): JApplicationAdministrator->dispatch() #10 /home/p/public_html/libraries/cms/application/cms.php(257): JApplicationAdministrator->doExecute() #11 /home/p/public_html/administrator/index.php(51): JApplicationCms->execute() #12 {main}

我看到这个问题涉及到nested,所以我猜它与我忽略的两个字段有关。如何解决这个问题?

P.S.,我硬编码了一些 PHP 以将记录添加到 #__menu 中,我认为这也在问题中起作用。太添加菜单项了,除了#__menu之外,还有其他表格需要我处理吗?

最佳答案

菜单是使用嵌套集构建的,它允许许多非常有用的功能,包括连贯的 URL 命名、移动子树、多语言处理的某些方面以及其他项目。正如您所知,您不能只插入一行。这并不意味着您必须使用管理界面一次执行一项操作。您有很多选项可以更轻松地完成此操作,具体取决于您是否想编写一个简单的 CLI 应用程序来创建新项目,或者您是否更愿意以更多基于 GUI 的方式(例如,复制子树结构)来完成此操作以便嵌套正常工作,然后您可以编辑数据库中的文本。

关于php - 什么是嵌套模型?它与 Joomla 的菜单项有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37220710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com