Doctrine orm 条令和ZF2的自定义存储库
我将ZF2与条令一起使用,我想使用存储库,但我遇到了以下错误:Doctrine orm 条令和ZF2的自定义存储库,doctrine-orm,zend-framework2,zfdoctrine,Doctrine Orm,Zend Framework2,Zfdoctrine,我将ZF2与条令一起使用,我想使用存储库,但我遇到了以下错误: The class 'Application\Repository\EventRepository' was not found in the chain configured namespaces Application\Entity 实体: namespace Application\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity(repository
The class 'Application\Repository\EventRepository' was not found in the chain configured namespaces Application\Entity
实体:
namespace Application\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="Application\Repository\EventRepository")
*/
class Event {
// ...
}
存储库:
namespace Application\Repository;
use Doctrine\ORM\EntityRepository;
class EventRepository extends EntityRepository
{
public function test()
{
// ...
}
}
在控制器中:
$this->getEntityManager()->getRepository('Application\Repository\EventRepository')->test()
在我的module.config.php中,我有:
return array(
// ...
'doctrine' => array(
'driver' => array(
'application_entities' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/Application/Entity')
),
'orm_default' => array(
'drivers' => array(
'Application\Entity' => 'application_entities'
)
)
),
// ...
)
);
所以我试着改变:
return array(
// ...
'doctrine' => array(
'driver' => array(
'application_entities' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/Application/Entity')
),
'application_repositories' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/Application/Repository')
),
'orm_default' => array(
'drivers' => array(
'Application\Entity' => 'application_entities',
'Application\Repository' => 'application_repositories'
)
)
),
// ...
)
);
我有一个新的错误:
Class "Application\Repository\EventRepository" sub class of "Doctrine\ORM\EntityRepository" is not a valid entity or mapped super class.
有什么问题
谢谢你检查这个
您必须调用
$this->getEntityManager()->getRepository('Application\Entity\Event')->test()是的,SylarBg是正确的,您需要调用将调用发送到存储库的相关实体,而不是直接调用存储库