你好,
在创建Symfony 2框架中的新项目时,我在Doctrine实体生成器方面遇到了一些问题。
为了测试目的,我有一个名为“users”的以下表:
id INT PKusername VARCHAR(80)
password VARCHAR(150)
salt VARCHAR(100)
email VARCHAR(100)
我创建了一个新项目,没有问题。 我把我的新bundle叫做MyTestBundle。
完成数据库设计后,我使用php app/console doctrine:mapping:convert yml ./src/My/TestBundle/Resources/config/doctrine/metadata/orm --from-database --force
将数据库模式映射到Yaml格式文件。 然后我使用php app/console doctrine:mapping:import MyTestBundle annotation
和php app/console doctrine:generate:entities MyTestBundle
来导入映射并生成实体。
我有几个关于实体生成的重要问题:
为什么它会创建名为Users而不是User的实体? 当我尝试修改位于
./src/My/TestBundle/Resources/config/doctrine/metadata/orm
的yml文件时,生成器似乎会忽略它们。 有什么提示吗?我需要实现自定义角色提供程序。 这就是为什么我创建了两个附加表用于角色存储(简化的架构如下):
roles:id INT PK,name VARCHAR(50)
users_roles:id INT PK,user_id INT,role_id INT
为什么生成器会忽略此关系? 它在UsersRoles类中创建了正确的关系,但在Roles或Users实体中没有。 我有什么遗漏吗?
任何帮助/解释都将不胜感激。
编辑
我注意到了一个非常奇怪的事情:
我创建了一个简单的Yaml模式,并将其放在./src/MyTestBundle/resources/config/doctrine/metadata/orm
中,我称此文件为User.orm.yml
。 现在,当我尝试导入映射或生成实体时,我会收到以下错误消息:Bundle“ MyTestBundle”不包含任何映射实体。
最热烈的问候,
戴夫