我正在重构并将我的doctrine2 entites / repositories和代理放在不同的文件夹中。
我将它设置为读取多个实体目录,但我正在与zend框架集成,我的模型有一个_
命名空间,Admin_Model_Repository_User
而不是Application\Entity\Repository\User
。
任何人都有任何指针来管理代理和存储库的多个路径。
答案 0 :(得分:0)
我不确定代理,但您当然可以轻松指定多个实体和存储库位置。
创建驱动程序时,可以传递单个路径字符串或数组。例如对于xml:
$driverImpl = new Doctrine\ORM\Mapping\Driver\XmlDriver(array(
APPLICATION_PATH . '/modules/admin/models',
APPLICATION_PATH . '/modules/default/models'
));
或者带注释:
$driverImpl = $config->newDefaultAnnotationDriver(array(
APPLICATION_PATH . '/modules/admin/models',
APPLICATION_PATH . '/modules/default/models'
));
这适用于任何映射驱动程序。或者你可以在创建$ driverImpl之后调用addPath()。
对于存储库,如果您在映射中指定了存储库类,只要自动装带器可以访问它,它就可以在任何位置工作。
答案 1 :(得分:0)
getIdentity()->getId()
。工作正常而不分离实体dirs,但它没有问题atm,我只是将id保存到存储中并让我的类从id重新创建对象。
现在似乎正在工作,感谢您的帮助
答案 2 :(得分:0)
我的ZF2解决方案
文件module.doctrine_orm.local.config.php中的
'drivers' => array(
'Admin' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'namespace' => 'Admin\Model',
'paths' => array('module/Admin/src/Admin/Model')
),
'Accounting' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'namespace' => 'Accounting\Model',
'paths' => array('module/Accounting/src/Accounting/Model')
)
),
和
'orm_driver_chain' => array(
'parameters' => array(
'drivers' => array(
'application_annotation_driver' => $settings['drivers']['Accounting'],
'application_annotation_driver2' => $settings['drivers']['Admin']
),
'cache' => $settings['cache']
)
),