【问题标题】:Symfony2/Doctrine2.4 "It's a requirement to specify a Metadata Driver"Symfony2/Doctrine2.4“需要指定元数据驱动程序”
【发布时间】:2014-06-26 08:34:27
【问题描述】:

我想使用 Doctrine 2.4 的一些特性(主要是命名实体监听器)和 $event->properyHasChanged('property') 并将我的 composer.json 更新到这个集合:

 "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "~2.4",
        "doctrine/orm": "2.4.3",
        "doctrine/doctrine-bundle": "~1.3",
        "twig/extensions": "~1.0",
        "symfony/assetic-bundle": "~2.3",
        "symfony/swiftmailer-bundle": "~2.3",
        "symfony/monolog-bundle": "~2.4",
        "sensio/distribution-bundle": "~2.3",
        "sensio/framework-extra-bundle": "~2.3",
        "sensio/generator-bundle": "~2.3",
        "incenteev/composer-parameter-handler": "~2.0",
        "stof/doctrine-extensions-bundle": "dev-master",
        "friendsofsymfony/jsrouting-bundle": "~1.1",
        "friendsofsymfony/rest-bundle": "dev-master",
        "sprain/validator-bundle": "dev-master",
        "willdurand/geocoder-bundle": "@stable",
        "friendsofsymfony/user-bundle": "~2.0@dev",
        "escapestudios/wsse-authentication-bundle": "2.3.x-dev",
        "jms/serializer-bundle": "dev-master",
        "doctrine/doctrine-fixtures-bundle": "2.2.*",
        "luxifer/doctrine-functions": "dev-master"

    },

composer.phar 更新到最后都没有问题。 更新后或当我尝试使用任何控制台方法(或 symfony2 应用程序)时,我收到此错误:

 [Doctrine\ORM\ORMException]                                                                                          
  It's a requirement to specify a Metadata Driver and pass it to Doctrine\ORM\Configuration::setMetadataDriverImpl().  

我的Doctrine配置如下:

doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        entity_managers:
            default:
                auto_mapping: true

回滚到学说 2.2 有效。 有 symfony2 和 Doctrine 2.4 的好例子吗?因为即使在当前版本(Symfony2 的 2.6 版本中,他们也在使用旧版本的 Doctrine。

感谢任何帮助!

【问题讨论】:

    标签: php symfony orm doctrine-orm doctrine


    【解决方案1】:

    Doctrine Bundle docs中所述的默认配置如下:

    doctrine:
      orm:
        auto_mapping: true
        # the standard distribution overrides this to be true in debug, false otherwise
        auto_generate_proxy_classes: false
        proxy_namespace: Proxies
        proxy_dir: %kernel.cache_dir%/doctrine/orm/Proxies
        default_entity_manager: default
        metadata_cache_driver: array
        query_cache_driver: array
        result_cache_driver: array
    

    如您所见,它添加了一个数组类型的元数据驱动程序。

    试试看能否解决你的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 2016-11-29
      • 2014-11-04
      • 2013-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多