【发布时间】:2011-05-18 18:49:00
【问题描述】:
使用 symfony 1.4 和学说,您可以在项目目录中使用以下命令生成前端页面/模块:php symfony 学说:generate-module --with-show --non-verbose-templates frontend tablename tableclassname强>
这适用于实际表,但是当我尝试在 MySQL 数据库视图而不是 MySQL 数据库表上运行此命令时,我收到此错误:无法为没有主数据库的模型生成模块key. 我的理解是,视图继承了它正在读取的表中的主键。
有没有人知道解决这个问题的方法,使用 symfony 仍然很容易维护?如果我可以在 symfony 框架中使用 DB 视图,那就太棒了。如果您需要更多详细信息,请告诉我。总的来说,无论多么复杂或简单,似乎都没有一种观点有效。
附:我尝试编辑 ./config/doctrine/schema.yml 文件以将视图中的 id 列更改为主键,它位于实际表中,尝试在 symfony 中生成前端模块时仍然遇到相同的错误.
tableName: v_tablename
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true --> This used to be primary: false
default: '0'
notnull: true
autoincrement: false
*K 我想通了,但由于我是新用户,所以直到 8 小时后才能发布我的答案。 当我编辑 schema.yml 文件时,我在 1/2 处。如果你试图从视图中生成一个模块,并且你已经在 symfony 之外构建了你的数据库模型,比如使用 MySQL Workbench,你必须构建你的模式,然后从你现有的数据库结构中构建你的模型,如下所示:
1 - php symfony dictionary:build-schema(这会生成 schema.yml 文件等)但是,如果您的数据库模式中有视图,则不会在schema.yml 文件。手动编辑它并在需要的地方相应地将 primary:false 更改为 primary:true。
2 - php symfony dictionary:build-model 添加主键后执行第 2 步,您就可以成功生成模块
3 - php symfony 学说:generate-module 前端模块模型
【问题讨论】:
标签: symfony-1.4