嗯,学说 2 能够处理关系(例如:乐队到专辑,反之亦然)
只要您将类定义为服务,EntityManager 就可以在您希望的每个类中使用。即在你的内部Module.php
你可以定义一个这样的工厂:
// Implement \Zend\ModuleManager\Feature\ServiceProviderInterface
public function getServiceConfig() {
return array(
//default stuff
'factories' array(
'my-album-service' = function($sm) {
$service = new \My\Service\Album();
$service->setEntityManager($sm->get('doctrine.entitymanager.orm_default'));
return $service;
}
)
)
);
然后,您可以从每个知道 ServiceManager 的类中调用此类,例如$this->getServiceLocator()->get('my-album-service')
然后这个类将自动注入 Doctrine EntityManager。
需要明确的是:您所做的所有查询都应该位于您的服务中。你有你的实体,基本上是 Doctrine 2 中的 DB_Mapper,然后你有你的服务,它运行像add()
, edit()
, findAll()
,findCustomQuery()
等这样的动作......
然后,您将使用来自控制器的数据填充您的服务,服务会将数据返回给控制器,控制器会将所述数据传递给视图。这对你有意义并回答你的问题吗?