在链配置的命名空间中找不到类(zend framework 2和doctrine 2)

时间:2015-03-19 15:48:07

标签: doctrine-orm zend-framework2

当我尝试在控制器中使用实体时出现以下错误:

  

课程'应用程序\实体\用户'在C:\ xampp \ htdocs \ zf2_pr6 \ vendor \ doctrine \ common \ lib \ Doctrine \ Common \ Persistence \ Mapping \ MappingException.php:37

中的链配置名称空间中找不到

我的module.config.php配置包括

'doctrine' => array(
    'driver' => array(
        'application_entities' => array(
            'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
            'cache' => 'array',
            'paths' => array(__DIR__ . '/../src/Application/Entity')
        ),
    ),
    'connection' => array(
        'orm_default' => array(
            'driverClass' => 'Doctrine\DBAL\Driver\PDOMysql\Driver',
            'params' => array(
                'host' => 'localhost',
                'port' => '3306',
                'user' => 'root',
                'password' => '',
                'dbname' => 'zf2',
            ),
        ),
    ),
),
'orm_default' => array(
    'drivers' => array(
        'Application\Entity' => 'application_entities',
    ),
),

我还创建了其他相关文件的粘贴箱

如何解决此错误将我的驱动程序添加到已配置的命名空间链?

1 个答案:

答案 0 :(得分:2)

您的配置不正确。目前你有'orm_default'配置在' doctrine' key - 意味着驱动程序永远不会添加到Doctrine。

您需要拥有驱动程序配置和' orm_default'配置在doctrine/driver下的同一级别。

'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',
            ),
        ),
    )
),