I have a very simple database that I am trying to import, and create Entities from. Doctrine (Symfony) is able to generate the YML mapping files from the database. But when I subsiquently try to generate entities, I get the following error:
[Doctrine\Common\Persistence\Mapping\MappingException]
Invalid mapping file 'SandboxBundle.Entity.Product.orm.yml' for class
'SandboxBundle\Entity\Product'.
The yml file looks fine to me, as we would expect being that it was generated by Doctrine. Just to be sure, I checked it against an online yml validator which said it was OK. The command I used to attempt to generate the entities was:
app/console generate:doctrine:entities sandbox
The .yml files follow. Please excuse any yml spacing errors that are a result of pasting the file here. As I said, the yml files were generated by doctrine, and did pass an online verification.
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: { }
And for completeness, here is the Category yml file. The error was on Product, but I presume it is because Product was processed first.
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: { }
I searched the web for any resources pertaining to diagnosing Mapping Exceptions, but have not found any. I presume that there is something in the YML files that is causing the entity generator to choke. But the error message give no indication as to what that might be. I see there are lots of instances of this kind of question on Stack Overflow. It would be great to get information on HOW to diagnose these types of errors, and thus be able to figure it out for ourselves.