【发布时间】:2012-02-04 23:35:24
【问题描述】:
我正在尝试使用动态表格字段构建应用程序。这个想法是管理员可以在不更改 MySQL 表的情况下定义每个项目的哪些字段可用。
在字段中输入的数据应该是各种类型,例如文本、货币和布尔值,因此可以添加 $ 之类的后缀或显示布尔值的图像。此外,应将字段分配给组(以在 HTML 字段集中将它们分开)。最后,一个项目的每个字段都有一个值。
我希望项目的添加和编辑表单显示所有可能的字段。
所以我需要以下模型是对的:
-
Item(有很多值) -
Field(belongsTo FieldGroup & FieldType (also hasMany Value??)) -
FieldGroup(hasMany 字段) -
FieldType(hasMany 字段) -
Value(属于项目和字段)
得到我需要的东西?
我真的不知道该怎么做的部分:每个项目只允许有一个值,但是因为模型Item hasMany Values 可以有多个。
我如何将具有组和类型的字段添加到 Item 中的表单中?我正在尝试使用loadModel('Group');(正确吗?)来获取它们,然后将数组$fieldsByGroups = $this->Group->find('all') 分配给添加/编辑模板并执行foreach($fieldsByGroups) 来创建表单输入。这样的方法合适吗?
Values 表有 4 个字段:id、item_id、field_id、value(我在 wordpress 表结构中看到的 LongText。我不需要像某些建议的那样为每个 FieldType 设置不同的表eav-articles(其中没有我需要的))。基本上我不需要id,但我认为CakePHP 需要一个primaryKey 并且无法处理item_id 和field_id 的索引。
谢谢,
手册
【问题讨论】:
-
您现在处于无 SQL 领域!查看 MongoDB / CouchDB - 您不需要需要定义任何集合结构,并且可以设置管理员能够从添加/编辑视图中添加/删除字段,使用 ORM 将结束轻松进入数据库。
标签: cakephp cakephp-2.0