2010-06-05 57 views
0

我需要一些關於基於Yii的應用程序的用戶設置機制的幫助。Yii的用戶設置機制

我創建了以下數據庫結構來存儲用戶設置:

  1. user具有以下字段

    ID |用戶名|電子郵件|等

  2. settingslist(存儲與描述的所有可能設置的列表)具有以下字段

    ID |代碼|名稱|說明

  3. settings(存儲所有用戶設置)具有以下字段

    ID |用戶ID | settingslistcode |值

現在我堅持允許用戶更改其設置的窗體。我必須先處理常規模型(即帖子,評論等),其中每個新模型在數據庫中只有一行(Post model - id | title | body |)和一定數量的屬性(表格字段)。但現在我需要將用戶設置存儲在10-15行中,並且我不知道如何將Yii模型機制應用於此工作,因此我可以以單一形式檢索這些設置(以便用戶可以更改他的偏好)。

任何建議,非常感謝。

謝謝!

回答

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); 
    ... 
}
0

嗯,我不確定您是否在您的網站或每篇帖子/評論中存儲了他的個人資料的用戶設置。

設置列表沒問題,我們需要定義所有可能的設置選項。然後,如果您爲用戶存儲網站設置,請嘗試在tbl用戶中使用ColumnSettings列。我通常使用序列化($ setting_array())。

如果您存儲每個帖子的用戶設置,請創建一個user_post_settings表和用戶相同的serialize()想法。所以,一個用戶 - 一個職位=>一行。