我有一个非常简单的数据库,我正在尝试导入并从中创建实体。Doctrine (Symfony) 能够从数据库中生成 YML 映射文件。但是当我随后尝试生成实体时,出现以下错误:
[Doctrine\Common\Persistence\Mapping\MappingException]
Invalid mapping file 'SandboxBundle.Entity.Product.orm.yml' for class
'SandboxBundle\Entity\Product'.
yml 文件对我来说看起来不错,因为我们期望它是由 Doctrine 生成的。可以肯定的是,我对照一个在线 yml 验证器对其进行了检查,该验证器说没问题。我用来尝试生成实体的命令是:
app/console generate:doctrine:entities sandbox
.yml 文件如下。请原谅由于在此处粘贴文件而导致的任何 yml 间距错误。正如我所说,yml 文件是由学说生成的,并且确实通过了在线验证。
Product:
type: entity
table: product
indexes:
category_id:
columns:
- category_id
id:
id:
type: integer
nullable: false
unsigned: false
comment: ''
id: true
generator:
strategy: IDENTITY
fields:
productname:
type: string
nullable: true
length: 10
fixed: false
comment: ''
categoryId:
type: integer
nullable: true
unsigned: false
comment: ''
column: category_id
lifecycleCallbacks: { }
为了完整起见,这里是 Category yml 文件。错误出现在 Product 上,但我认为这是因为先处理了 Product。
Category:
type: entity
table: category
id:
id:
type: integer
nullable: false
unsigned: false
comment: ''
id: true
generator:
strategy: IDENTITY
fields:
categoryname:
type: string
nullable: true
length: 50
fixed: false
comment: ''
lifecycleCallbacks: { }
我在网上搜索了与诊断映射异常有关的任何资源,但没有找到任何资源。我认为 YML 文件中有一些东西导致实体生成器阻塞。但是错误消息没有说明可能是什么。我看到 Stack Overflow 上有很多此类问题的实例。获得有关如何诊断这些类型的错误的信息会很棒,因此能够自己解决。