codeigniter 代码点火器4:未找到类"公司\翻译后\模型\翻译类别模型"

nkcskrwz  于 2023-02-14  发布在  其他
关注(0)|答案(2)|浏览(87)

我一直在尝试用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

x4shl7ld

x4shl7ld1#

您应该运行composer dump-autoload

    • 编辑:**

每一行的键是命名空间本身。这不需要一个尾部反斜杠。值是类所在目录的位置。它们应该有一个尾部斜杠。Codeigniter文档
因此,您必须像这样更改$psr4

public $psr4 = [
    APP_NAMESPACE => APPPATH, // For custom app namespace
    'Company\PostTranslator' => ROOTPATH . 'modules/Company/PostTranslator/',
];

可能的原因例如,以下内容可以正常工作

    • modules/Company/PostTranslator/Config/Events. php**工作正常是因为这不是一个类,所以即使你在它上面添加名称空间,也不会有任何影响(你可以尝试删除Config的名称空间)。
of1yzvn4

of1yzvn42#

文件的扩展名不知何故被删除了。IDE没有检测到这个问题,我也没有。我只有在尝试了require之后才能弄清楚。我疯了!

相关问题