gpt4 book ai didi

plugins - 来自不同插件的重复 Controller 名称

转载 作者:行者123 更新时间:2023-12-01 12:47:34 25 4
gpt4 key购买 nike

我对 Cakephp2.3 的文件加载系统有疑问。

我有两个插件——我们称它们为“联系人”和“经理”,加载方式如下:

CakePlugin::load('Contacts');
CakePlugin::load('Managers');

他们每个人都有一个名为“DashboardController.php”的 Controller ,带有 index() 操作。

当我尝试访问“联系人”的仪表板页面时,有时会看到以下错误:

Error: Class "ManagersAppController" not found

即使 url 看起来像这样:

http://mysite.com/contacts/dashboard

我读到 Cakephp2.3 不支持 namespace ,这可能会发生,因为我有两个同名的 php 类 (DashboardController.php)。同时,我知道 Cake 应该首先映射插件名称,所以它应该能够处理重复的文件名。

你知道我为什么会看到这个随机错误吗?

感谢您的帮助。

最佳答案

我刚刚从开发 CakePHP 的人那里找到了答案。事实上,您不能拥有两个名称相同的 Controller 或模型,即使它们位于不同的插件中也是如此。

这只发生在 CakePHP2.x 中,我引用:

This is a known limitation of Cake2.x and the lazy loading approach using App::uses()

你可以在这里看到我的问题和他们的答案:http://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/3558-loading-file-from-a-different-plugin

解决方案是重命名具有冲突名称的 Controller /模型和/或使用插件名称从插件命名所有 Controller 和模型(例如,DashboardController.php 将变为 ContactsDashboardController.php)

关于plugins - 来自不同插件的重复 Controller 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460626/

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