2012-10-25 84 views
4

我试图让ZF2快速入门与Doctrine一起工作。我以为我已经设置正确,但我得到以下错误。有没有人看过它?Zend Framework 2与Doctrine快速入门

文件: /Users/jhicks/workspace/zf2-example/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php:38 消息: 类“相册\实体\专辑”链配置的命名空间ZfcUser \实体,\实体,ZfcUserDoctrineORM \找不到实体

这是我的原则配置:

return array(
    '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' 
       ) 
      ) 
     ), 
     'connection' => array(
      'orm_default' => array(
       'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 
       'params' => array(
        'host'  => 'localhost', 
        'port'  => '3306', 
        'dbname' => 'zf2example', 
        'user'  => 'user', 
        'password' => 'password' 
       ), 
      ) 
     ) 
    ), 
); 
+4

你的配置文件有合适的命名空间?这是你的'module.config.php'? – Sam

+0

就是这样!谢谢。 –

回答

8

如果您在列表中密切关注在异常消息实体命名空间...

ZfcUser\Entity, \Entity, ZfcUserDoctrineORM\Entity 
-------------------^ 

你会发现,他们中的一个就是\Entity。这是因为你已经在某个PHP配置文件中配置了你的实体命名空间(例如:config/autoload中的文件或你的模块的config/module.config.php文件),默认情况下这些文件没有命名空间。尝试添加一个到配置文件的顶部:

<?php 
namespace Album; 

在我的本地测试中,解决了这个问题。