【发布时间】:2011-12-14 11:00:05
【问题描述】:
美好的一天,
在 Symfony 2 框架中创建新项目时,我在使用 Doctrine 实体生成器时遇到了一些问题。
出于测试目的,我有下表称为用户: id INT PK
username VARCHAR(80)
password VARCHAR(150)
salt VARCHAR(100)
email VARCHAR(100)
我创建了新项目没有问题。我将我的新包命名为 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 类中创建正确的关系,但不在角色或用户实体中。我错过了什么吗?
任何帮助/解释将不胜感激。
编辑
我注意到非常奇怪的事情:
我创建了简单的 Yaml 模式并将其放入 ./src/MyTestBundle/resources/config/doctrine/metadata/orm,我将此文件称为 User.orm.yml。现在,当我尝试导入映射或生成实体时,我收到以下错误 Bundle "MyTestBundle" does not contain any mapped entities.
最诚挚的问候,
戴夫
【问题讨论】:
标签: symfony doctrine-orm