使用symfony 1.4和doctrine,您可以在项目目录中使用此命令生成前端页面/模块: php symfony doctrine:generate-module --with-show --non-verbose-templates frontend tablename tableclassname
这适用于实际表,但是当我尝试在MySQL DB View而不是MySQL DB Table上运行此命令时,我收到此错误:无法为没有主数据库的模型生成模块密钥。视图从它正在读取的表中继承主键,是我的理解。
有没有人知道这方面的工作,使用symfony仍然很容易维护?如果我可以将数据库视图与symfony框架一起使用,那就太棒了。如果您需要更多详细信息,请与我们联系。一般来说,无论多么复杂或简单,任何观点似乎都无效。
P.S。我尝试编辑./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,那么你必须使用doctrine来构建你的模式,然后在现有数据库结构的symfony中构建你的模型,如下所示:
1 - php symfony doctrine:build-schema (这会生成schema.yml文件等)但是如果在数据库模式中有视图,则不会在schema.yml文件。手动编辑并将primary:false更改为primary:相应地在您需要的位置更改。
2 - php symfony doctrine:build-model 在添加主键后执行第2步后,您就可以成功生成模块
3 - php symfony doctrine:generate-module frontend module model
答案 0 :(得分:1)
小修正......这会有效,但我错过了2& 2之间的一步。 3影响表格页面并打破了第1步。
1 - php symfony doctrine:build-schema (这会生成schema.yml文件等)
2 - 编辑./config/doctrine/schema.yml 文件。对于视图定义,请将primary:false更改为primary:true,根据需要将其更改为true。我也注意到在MySQL中,因为boolean = tinyint(1),schema.yml检测整数(1)而不是布尔值。您也可以将integer(1)数据类型更改为您需要的布尔值。
tableName: v_tablename
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: false --> change to, primary: true
default: '0'
notnull: true
autoincrement: false
tableName: tablename
columns:
active:
type: integer(1) --> change to, type: boolean
fixed: false
unsigned: false
primary: false
default: '0'
notnull: true
autoincrement: false
3 - php symfony doctrine:build-model
4 - php symfony doctrine:build-forms
5 - php symfony doctrine:generate-module frontend module