【问题标题】:User settings mechanism for YiiYii 的用户设置机制
【发布时间】:2010-06-05 09:34:18
【问题描述】:

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

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

  1. user 包含以下字段

    标识 |用户名 |电子邮件 |等等

  2. settingslist(存储所有可能设置的列表和描述),包含以下字段

    标识 |代码 |姓名 |说明

  3. 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() 想法。所以,一个用户 - 一个帖子 => 一行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-26
        • 2013-09-21
        • 2014-09-20
        • 2013-02-08
        相关资源
        最近更新 更多