我一直在尝试用CodeIgniter 4编程。事情进展得很顺利,直到我遇到了这个障碍。我已经通过代码进行了研究,CI文档和在线搜索没有解决这个问题,我不明白为什么CI看不到那个文件。需要注意的是,在IDE中,这个类Map正确(即,我可以控制-〉点击类初始化调用,它会把我带到正确的文件。2我需要一些帮助,因为我看不到问题在哪里。
错误:CRITICAL Class "Company\PostTranslator\Models\TranslateCategoryModel" not found
应用程序结构
- 应用程序
- 资产
- 模组
- 公司
- 翻译后
- 型号
- TranslateCategoryModel.php
- 可写的
- ...
这是我如何设置它:
应用程序/配置/自动加载.php(PSR 4)
public $psr4 = [
APP_NAMESPACE => APPPATH, // For custom app namespace
'Config' => APPPATH . 'Config',
'Company\PostTranslator' => ROOTPATH . 'modules/Company/PostTranslator',
];
模块/公司/翻译后/模型/翻译模型.php
<?php
namespace Company\PostTranslator\Models;
use Company\PostTranslator\Models\TranslateCategoryModel;
use App\Models\PostAdminModel;
class TranslateModel extends PostAdminModel
{
public $translateCategoryModel;
public function __construct()
{
$this->translateCategoryModel = new TranslateCategoryModel();
}
public function addTranslatedPost($postData, $translatedContent)
{
...
}
}
模块/公司/翻译后/模型/翻译类别模型.php
<?php
namespace Company\PostTranslator\Models;
use App\Models\CategoryModel;
class TranslateCategoryModel extends CategoryModel
{
...
}
我不知道我做错了什么。
例如,以下命令可以正常工作
模块/公司/翻译后/配置/事件.php
<?php
namespace Company\PostTranslator\Config;
use CodeIgniter\Events\Events;
Events::on('pre_system', function () {
log_message('error', "FIRING EVENT pre_system");
});
日志文件输入ERROR - 2023-02-13 10:48:16 --> FIRING EVENT pre_system
2条答案
按热度按时间x4shl7ld1#
您应该运行
composer dump-autoload
每一行的键是命名空间本身。这不需要一个尾部反斜杠。值是类所在目录的位置。它们应该有一个尾部斜杠。Codeigniter文档
因此,您必须像这样更改
$psr4
:可能的原因例如,以下内容可以正常工作
of1yzvn42#
文件的扩展名不知何故被删除了。IDE没有检测到这个问题,我也没有。我只有在尝试了require之后才能弄清楚。我疯了!