我需要一些基于Yii的应用程序的用户设置机制的帮助。
我创建了以下数据库结构来存储用户设置:
表user
包含以下字段
id |用户名|电子邮件|等
表settingslist
(用于存储包含说明的所有可能设置的列表)以及以下字段
id |代码|名字|说明
表settings
(用于存储所有用户设置)以及以下字段
id | userid | settingslistcode |值
现在我坚持使用允许用户更改其设置的表单。我之前必须处理常规模型(即帖子,评论等),其中每个新模型在数据库中只有一行(Post model - id | title | body |
)具有一定数量的属性(字段为表)。但是现在我需要将用户设置存储在10-15行中,我不知道如何应用Yii模型机制来处理这个问题,所以我可以在一个表单中检索这些设置(这样用户可以改变他的偏好)。 / p>
非常感谢任何建议。
谢谢!
答案 0 :(得分: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);
...
}
答案 1 :(得分:0)
好吧,我不确定您是否在自己的网站或每个帖子/评论中存储了他的个人资料设置。
设置列表没问题,我们需要定义所有可能的设置选项。然后,如果您为用户存储网站设置,请尝试在tbl用户中使用列ProfileSettings。我通常使用serialize($ setting_array())。
如果您为每个帖子存储用户设置,请创建user_post_settings表和用户相同的serialize()构思。所以,一个用户 - 一个帖子=>一排。