【问题标题】:Use only annotations to define mapping rules for doctrine仅使用注释来定义学说的映射规则
【发布时间】:2014-01-21 16:41:24
【问题描述】:

我想让教义只使用实体类中存在的注释(不是 YAML)。

当我执行:php app/console doctrine:schema:update 时,我收到错误消息:

Invalid mapping file 'TEST.Bundle.BlogBundle.Entity.Image.orm.yml' for clas
s 'TEST\Bundle\BlogBundle\Entity\Image'.

文件TEST.Bundle.BlogBundle.Entity.Image.orm.yml 为空。此错误背后的原因可能是什么?

我如何告诉学说考虑注释指定的元数据?

非常感谢。

【问题讨论】:

  • 您使用的是哪个版本的 PHP?

标签: php symfony doctrine-orm annotations doctrine


【解决方案1】:

删除文件:

TEST.Bundle.BlogBundle.Entity.Image.orm.yml

注意:基于 Symfony2 文档

"A bundle can accept only one metadata definition format. For example,
it's not possible to mix YAML metadata definitions with annotated PHP
entity class definitions."

【讨论】:

  • 使用你的答案后,问题解决了。但是,我想问一个问题。我可以在同一个项目下对某些实体使用 YAML,对其他实体使用注释吗?如果两者都用于一个实体,那么 YAML 是否总是优先的?
  • 其实我的浏览器下出现No mapping file found named错误。我想我需要在配置中指定我应该为该特定实体使用注释并为其他实体保留 YAML。对吗?
  • 关于不同的格式,试着问另一个问题,也许可以。但最好坚持一种格式
  • 谢谢。所以不同的包可以有不同的格式。尝试为您的实体使用不同的捆绑包来实现您的目标
  • 使用代码生成器。我使用 NetBeans,它可以简单地执行 symfony 命令来创建包、实体等。
猜你喜欢
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 1970-01-01
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多