[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 映射异常错误