0

Yii ベースのアプリケーションのユーザー設定メカニズムについて助けが必要です。

ユーザー設定を保存するために、次の db 構造を作成しました。

  1. user次のフィールドを持つテーブル

    ID | ユーザー名 | 電子メール | 等

  2. 次のフィールドを持つテーブルsettingslist(すべての可能な設定のリストと説明を保存するため)

    ID | コード | 名前 | 説明

  3. 次のフィールドを持つテーブルsettings(すべてのユーザー設定を保存するため)

    ID | ユーザー ID | 設定リストコード | 価値

現在、ユーザーが設定を変更できるフォームにこだわっています。id | title | body |通常のモデル (つまり、投稿、コメントなど) では、新しいモデルごとにデータベース (Post モデル - ) に特定の量の属性 (テーブルのフィールド) を持つ行が 1 つしかありませんでした。しかし、今はユーザー設定を 10 ~ 15 行に保存する必要があり、Yii モデル メカニズムを適用してこれを処理する方法がわからないので、これらの設定を 1 つのフォームで取得できます (ユーザーが自分の設定を変更できるようにするため)。

どんな提案でも大歓迎です。

ありがとうございました!

4

2 に答える 2

1

フォームの基準が何であるかはわかりませんが、次の方法で特定のユーザーのすべての設定を取得できます。

$criteria=new CDbCriteria;
$criteria->condition="id=".$user->id;
$settings=Settings::model()->findAll($criteria);

次に、フォームを構築するこれらのそれぞれをループします。

foreach($settings as $setting){
    $criteria->condition="code=".$settings->settingslistcode;
    $settingElement = SettingsList::model()->find($criteria);
    ...
}
于 2010-06-11T05:41:44.120 に答える
0

ええと、彼のプロフィールのユーザー設定をサイトに保存するのか、投稿/コメントごとに保存するのかわかりません.

設定リストは問題ありません。可能なすべての設定オプションを定義する必要があります。次に、ユーザーのサイト設定を保存する場合は、tbl users の列 ProfileSettings を試してください。通常、serialize($setting_array()) を使用します。

投稿ごとにユーザー設定を保存する場合は、user_post_settings テーブルとユーザーと同じ serialize() アイデアを作成します。したがって、1 人のユーザー - 1 つの投稿 => 1 つの行です。

于 2010-06-12T05:42:37.230 に答える