[Symfony][Doctrine]文件映射驱动程序必须有一个有效的目录路径

Posted

技术标签:

【中文标题】[Symfony][Doctrine]文件映射驱动程序必须有一个有效的目录路径【英文标题】:[Symfony][Doctrine]File mapping drivers must have a valid directory path 【发布时间】:2015-07-18 14:30:00 【问题描述】:

我在 Sf2.7 上遇到了 Doctrine 问题,当我运行诸如“doctrine: schema: update”之类的命令时,我得到:

[Doctrine\Common\Persistence\Mapping\MappingException] File mapping drivers must have a valid directory path, however the given path 0 seems to be incorrect!

这一直很好,直到我在大量更改实体后删除数据库以“干净”重新创建它...

这是我的 config.yml 的摘录


    # Doctrine Configuration
    doctrine:
        dbal:
            default_connection: default
            connections:
                default:
                    driver:    pdo_mysql
                    dbname:    "%database_name%"
                    host:      "%database_host%"
                    port:      "%database_port%"
                    user:      "%database_user%"
                    password:  "%database_password%"
                    charset:   UTF8
        orm:
            default_entity_manager: default
            entity_managers:
                default:
                    connection: default
                    auto_mapping: true

所有实体都以这种类型的注释开头:

/**
 * User
 *
 * @ORM\Entity
 * @ORM\Table(name="usr_user")
 * @ORM\Entity(repositoryClass="Acme\UserBundle\Repository\UserRepository")
 */

我搜索了我们的朋友 Google、OpenClassRooms,当然还有这里,但没有找到……有人有想法吗?

【问题讨论】:

您可能还需要添加默认实体管理器的配置 这里有一个错字* @ORM\Table(name="usr_user")* 另外,请仔细检查您在 Resources/config/doctrine 下没有任何文件,因为它们会干扰注释。 我纠正了错字并像 sf2.7 doc 一样重做我的 config.yml,但错误仍然存​​在 但是我没有目录 Resources/config/doctrine... 这和SF2.7有关还是只是一个错误? 【参考方案1】:

当我将我的项目导入另一台电脑时遇到了同样的错误。对我有用的解决方案是尝试使用 php artisan 命令清除配置缓存。

php 工匠配置:缓存

然后尝试创建或更新学说架构。

【讨论】:

请详细填写并添加标签 好吧,基本上 laravel 配置缓存可以让你的 laravel 应用程序运行得更快。当您运行上述命令时,它会将所有配置文件缓存到一个文件中。例如,当我将项目导入另一个系统时,所有先前缓存的项目配置都与新系统配置冲突,因此 config:cache 命令删除旧缓存并使用新配置进行更新。希望这使sense.Also 查看文档here【参考方案2】:

对于 Symfony,您需要清除 var/cache 目录。

它为我解决了问题。

【讨论】:

以上是关于[Symfony][Doctrine]文件映射驱动程序必须有一个有效的目录路径的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义属性添加到 Symfony Doctrine YAML 映射文件

Symfony3.4 / Doctrine迁移 - 驱动程序中发生异常:SQLSTATE [HY000] [2002]没有这样的文件或目录

在 Symfony2 中使用 Doctrine 映射异常错误

Symfony2 项目中的 Doctrine2 映射问题

问:Symfony2 - Doctrine - Class xxx 不是有效的实体或映射的超类

在 Symfony 中使用 Doctrine 的 DBAL 检索布尔值