【问题标题】:Symfony 1.4 Doctrine MySQL Database table Views ModuleSymfony 1.4 Doctrine MySQL 数据库表视图模块
【发布时间】: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


    【解决方案1】:

    较小的更正...这会起作用,但是我错过了 2 和 3 之间的一个步骤,它影响了表单页面并分解了第 1 步。

    1 - php symfony 学说:build-schema(这会生成 schema.yml 文件等)

    2 - 编辑 ./config/doctrine/schema.yml 文件。对于您的视图定义,在您需要的地方相应地将 primary:false 更改为 primary: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 学说:构建模型

    4 - php symfony 学说:构建形式

    5 - php symfony 学说:生成模块前端模块

    【讨论】:

    • 您是否遇到过需要生成一个基本上基于两个表的模块?这对我来说很有意义,因为我本质上是将我的一个表的数据拆分为两个数据库表,并且由于每个模块似乎都基于一个表,所以对我来说让模块基于两个表,:p
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多