Doctrine2からクラス構造をマップしようとしているときにエラーが発生します。Zend Framework 2のモジュール構造内で多くの名前空間をマッピングする際のDoctrineエラー
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ . 'Admin' => __DIR__ . '/src/' . __NAMESPACE__ . 'Admin',
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__
),
),
);
}
:
module
ModuleOne
config
module_config.php
src
ModuleOne
Entity
ClassOne.php
ModuleOneAdmin
Entity
ClassTwo.php
ClassTwoRepository.php
Module.php
ModuleTwo
config
module_config.php
src
ModuleTwo
Entity
ClassThree.php
Module.php
を私は(ModuleOne/Module.phpで)私のオートローダは、このように設定されている、ModuleOne内2つの副名前空間をしましたので、次のように
マイZendのアプリケーションのモジュールが構成されていますModuleOne /設定/ module_config.phpで
は、教義が
'doctrine' => array(
'driver' => array(
__NAMESPACE__ . '_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(
__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity'
)
),
'orm_default' => array(
'drivers' => array(
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
),
),
),
)
を設定されている私たちですModuleOneとModuleTwoをコントローラとビューを所有する別のモジュール(モジュール構造では指定しなかったもの)に入れてください。
私は自分のアプリケーションを実行すると、それはエンティティのリポジトリのために呼び出す行に取得し、エラー:
$repository = $this->getEm()->getRepository('ModuleOneAdmin\Entity\ClassTwo');
エラーは次のとおりです。
The class 'ModuleOneAdmin\Entity\ClassTwo' was not found in the chain configured namespaces ModuleOne\Entity, ModuleTwo\Entity
私が検索しましたStackOverflowやGoogle検索の他のサイトでは、このようなことに関する他の多くの質問がありましたが、私の問題に対処していませんでした。 Doctrineのように、内部マッピングでModuleOneAdminが見つかりません。私が紛失している設定がいくつかありますか?
ありがとうございます。