【问题标题】:Zend Framework 2 Quick Start with DoctrineZend Framework 2 Doctrine 快速入门
【发布时间】:2012-10-25 04:35:02
【问题描述】:

我正在尝试让 ZF2 快速入门与 Doctrine 一起使用。我以为我已正确设置它,但出现以下错误。有人看过吗?

文件: /Users/jhicks/workspace/zf2-example/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php:38 信息: 在链配置的命名空间 ZfcUser\Entity、\Entity、ZfcUserDoctrineORM\Entity

中找不到类“Album\Entity\Album”

这是我的教义配置:

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

【问题讨论】:

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

标签: doctrine-orm zend-framework2


【解决方案1】:

如果您仔细查看异常消息中的实体命名空间列表...

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

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

<?php
namespace Album;

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

【讨论】:

    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    相关资源
    最近更新 更多