我有一个 Yii 项目,我想在个人资料页面上添加字段,这些字段在另一个模型中进行了描述。
所以表格可能如下所示:
创建表`object_field`( `id` INT NOT NULL AUTO_INCREMENT , `varname` VARCHAR(255) NULL , `title` VARCHAR(255) NULL , `field_type` VARCHAR(255) NOT NULL , `match` VARCHAR(255) NULL , `范围` VARCHAR(255) NULL , `default` VARCHAR(255) NULL , `required` INT(1) NOT NULL DEFAULT 0 , `position` INT(3) NOT NULL DEFAULT 0 , `visible` INT(1) NOT NULL DEFAULT 0 , 主键 (`id`) ) 引擎 = InnoDB
所以在UserProfile
-model 中,我已将字段添加到rules()
andattributesLabels()
但__get()
and确实在我添加例如模型__set()
之前找不到属性。public $this->fieldName
用户的值存储在另一个表中,该表User
将UserData
我应该覆盖模型中的__get()
and __set()
,还是如何使用动态定义的字段使表单中的字段接受?
更新:
我查看了 Yii-user 扩展,http: //www.yiiframework.com/extension/yii-user/,但它只是更改了 UserProfile-schema 以添加新字段。我可以有 20 种不同类型的用户,他们每个人都共享一些字段,并且可能有一些仅针对一种类型的特殊字段。
一个解决方案可能是将 mongoDB 添加为关系。但我从未使用过这种技术。