【问题标题】:User settings mechanism for YiiYii 的用户设置机制
【发布时间】:2010-06-05 09:34:18
【问题描述】:
我在基于 Yii 的应用程序的用户设置机制方面需要一些帮助。
我创建了以下数据库结构来存储用户设置:
-
表 user 包含以下字段
标识 |用户名 |电子邮件 |等等
-
表settingslist(存储所有可能设置的列表和描述),包含以下字段
标识 |代码 |姓名 |说明
-
表settings(用于存储所有用户设置)具有以下字段
标识 |用户名 |设置列表代码 |价值
现在我坚持使用允许用户更改其设置的表单。我之前必须处理常规模型(即帖子、cmets 等),其中每个新模型在数据库中只有一行(帖子模型 - id | title | body |)具有一定数量的属性(表的字段) .但是现在我需要将用户设置存储在 10-15 行中,并且我不知道如何应用 Yii 模型机制来处理它,所以我可以以单一形式检索这些设置(以便用户可以更改他的偏好)。
非常感谢任何建议。
谢谢!
【问题讨论】:
标签:
forms
model
settings
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);
...
}
【解决方案2】:
好吧,我不确定您是在您的网站中还是在每个帖子/评论中存储他的个人资料的用户设置。
设置列表OK,我们需要定义所有可能的设置选项。然后,如果您为用户存储站点设置,请尝试在 tbl users 中使用列 ProfileSettings。我通常使用serialize($setting_array())。
如果您存储每个帖子的用户设置,请创建一个 user_post_settings 表和用户相同的 serialize() 想法。所以,一个用户 - 一个帖子 => 一行。