-
25-09-2019 - |
题
我创建一个应用程序,用户将可以创建阶段将数据存储在数据库,这个领域将收到不同种类的数据,像日期,或货币价值。
我的初步想法创造这个该领域是储存在数据库表(如:meta_fields)、名称、价值和验证这一领域。
之后,在时间的使用上应用程序,我打算延长AR方法__获得和使用的名字作为一个属性。
例如:
如果在我桌meta_fields我有这个价值观:
----------------------------------------------------
| id | name | value | validation |
----------------------------------------------------
| 1 | money_en | $562,00 | some validation... |
----------------------------------------------------
| 2 | date_crt | 2010-12-09 | some validation... |
----------------------------------------------------
我打算用我的意见和控制器喜欢它:
$model->money_en //will return $562,00
现在的问题是:
1-我怎么可以使用这种领域存的价值观和恢复它吗?2-我如何用不同的验证种类,以这个领域?因为我储存的验证列为序列的数值上的数据库?
谢谢。
其他提示
基本上,你需要在这里完成的是一个自定义的ActiveRecord基类。如果你看一下的CActiveRecord,你会看到,它获取各种元数据信息从你选择的数据库。因为在你的情况下,元信息是在一个表中,你需要创建一个自定义的ActiveRecord基类,拉手什么的CActiveRecord一样。
请注意,与像一个自定义元表你描述上面不会是容易做到普通搜索和组操作。
不会的,如果你用一个简单的表ID和值,其中值包含JSON数据会更加容易?
-------------------------------------------------------------------------
| ID | VALUE |
-------------------------------------------------------------------------
| 10 | {'name':'validation','money_en':'$100','dare_crt' :'2010-12-09'} |
-------------------------------------------------------------------------
和然后是这样的:
$record = MyTable::model()->findByPk(10); // or some thing like this
$arr = CJSON::decode($record->VALUE);
$arr['money_en'] == '$200';
$receord->VALUE = CJSON::encode($arr);
$record->save();
看看这个扩展。它有您所需要的个人资料栏位实行。 http://www.yiiframework.com/extension/yii-user-management
不隶属于 StackOverflow