質問

私の作成アプリがユーザーを創造できるメタ分野でデータをデータベースに、この分野を受ける異なる種類のデータのように、日または金銭の値です。

私たちの発想をこの分野のものは、店舗のデータベーステーブル(例:meta_fields)の名前、値、検証の分野です。

後の時間の使用でアプリたいと考えていますのAR法__を取得および__使用する設定の[名前]フィールドとしての属性。

例:

またonの場合に自分のテーブル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-どのようにしたいのでユーザーの異なる種類の検証にこの分野?以来、店舗の検証に配列して直列化された値のデータベース?

感謝。

役に立ちましたか?

解決

かにするべきである EAV 実行?誰かが作ったEAV動YiiのYiiExt, こちらの (まだ使います。EAVはやや複雑ですが(多く)ビット非効率的(も参加!), こうしたい場合において任意のグループのリスク-プロファイル分野に取り付けDB"列".

他のヒント

は基本的にあなたがここに達成するために必要なカスタムのActiveRecordの基底クラスです。あなたはCActiveRecordを見れば、あなたはそれが選択したデータベースからのメタ情報のすべての種類を取得していることがわかります。あなたのケースでのメタ情報がテーブルにあるので、あなたは、カスタムのActiveRecordの基底クラスを作成する必要があるだろうというハンドルCActiveRecordが何をするか。

あなたは上記の説明のようなカスタムメタテーブルで通常の検索とグループの操作を行うことは容易ではないことに注意してください。

あなたは値がJSONデータが含まれているIDと値を持つ単純なテーブルを使用する場合は、でしょうが、それはあなたのために簡単ではない?

-------------------------------------------------------------------------
| 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();

この拡張機能を見てみましょう。それはあなたが、プロファイルフィールドに必要なもののimplemenationを持っています。 http://www.yiiframework.com/extension/yii-user-managementする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top