2012-10-25 110 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; 

在我的本地測試中,解決了這個問題。