0

HMVC codeigniter 3 を使用しています。その下にadminというフォルダーがあり、そのフォルダーにはclientというサブフォルダーがあります。私の構成ファイルでは、次のようにモジュールパスを設定しました。

$config['modules_locations'] = array(
    APPPATH.'modules/'                   => '../modules/',
    APPPATH.'modules/admin/' => '../modules/admin/', 
);

さて、問題は、クライアントコントローラーをロードしていますが、エンティティをロードしていないことです。次のエラーが表示されます。

> An uncaught Exception was encountered
> 
> Type: Doctrine\ORM\Query\QueryException
> 
> Message: [Semantical Error] line 0, col 109 near 'entities\AppClient':
> Error: Class 'entities\AppClient' is not defined.

この問題を解決するのを手伝ってください..このクライアントモジュールは、サブモジュールからモジュールのみのフォルダーに移動した場合、正常に動作します

4

1 に答える 1

0

解決しました...doctorine.phpに次の関数を追加します

private function _recursiveDir(&$array, $directory)
    {
        $scanned_dir = array_diff(scandir($directory), array('..', '.'));
        sort($scanned_dir);

        $subModules = array(
            "admin"
        );

        foreach ($scanned_dir as $module) {
            if (is_dir($directory.$module."/models")) {
                $array[] = $directory.$module."/models/doctrine/entities";
            } else if (in_array($module, $subModules)) {
                $this->_recursiveDir($array, $directory.$module."/");
            }
        }
    }
于 2018-07-05T11:33:49.580 に答える