Yii的用户设置机制

时间:2010-06-05 09:34:18

标签: forms model settings yii

我需要一些基于Yii的应用程序的用户设置机制的帮助。

我创建了以下数据库结构来存储用户设置:

  1. user包含以下字段

    id |用户名|电子邮件|等

  2. settingslist(用于存储包含说明的所有可能设置的列表)以及以下字段

    id |代码|名字|说明

  3. settings(用于存储所有用户设置)以及以下字段

    id | userid | settingslistcode |值

  4. 现在我坚持使用允许用户更改其设置的表单。我之前必须处理常规模型(即帖子,评论等),其中每个新模型在数据库中只有一行(Post model - id | title | body |)具有一定数量的属性(字段为表)。但是现在我需要将用户设置存储在10-15行中,我不知道如何应用Yii模型机制来处理这个问题,所以我可以在一个表单中检索这些设置(这样用户可以改变他的偏好)。 / p>

    非常感谢任何建议。

    谢谢!

2 个答案:

答案 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()构思。所以,一个用户 - 一个帖子=>一排。