別のモデルで記述されているプロファイル ページにフィールドを追加したい Yii プロジェクトがあります。
したがって、テーブルは次のようになります。
CREATE TABLE `object_field` ( `id` INT NOT NULL AUTO_INCREMENT 、 `varname` VARCHAR(255) NULL 、 `タイトル` VARCHAR(255) NULL , `field_type` VARCHAR(255) NOT NULL 、 `match` VARCHAR(255) NULL 、 `range` 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
モデルでは、フィールドをrules()
andに追加しましたattributesLabels()
が、__get()
andは、たとえばモデル__set()
に追加する前に属性を見つけることができません。public $this->fieldName
ユーザーへの値は別のテーブルに保存されますUser
。UserData
__get()
モデルのandを上書きする必要があります__set()
か、または動的に定義されたフィールドを使用してフォームへのフィールドを受け入れるにはどうすればよいですか?
アップデート:
Yii-user 拡張機能http://www.yiiframework.com/extension/yii-user/を見てきましたが、 UserProfile-schema を変更して新しいフィールドを追加するだけです。20 の異なるタイプのユーザーを持つことができ、それぞれがいくつかのフィールドを共有し、1 つのタイプのためだけにいくつかの特別なフィールドを持っている可能性があります。
解決策は、mongoDB をリレーションとして追加することです。しかし、私はその技術を使ったことがありません。