2010-06-05 5 views
0

Мне нужна помощь с механизмом пользовательских настроек для моего приложения на основе Yii.Механизм пользовательских настроек для Yii

Я создал следующую структуру БД для хранения пользовательских настроек:

  1. таблицу user со следующими полями

    ид | имя пользователя | электронная почта | и т.д.

  2. стол settingslist (для хранения списка всех возможных настроек с описаниями) со следующими полями

    ид | код | имя | Описание

  3. стол settings (для хранения всех пользовательских настроек) со следующими полями

    ид | userid | 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

Ну, я не уверен, сохраняете ли вы настройки пользователя для своего профиля на своем сайте или за сообщение/комментарий.

Список настроек в порядке, нам необходимо определить все возможные параметры настройки. Затем, если вы сохраните настройки сайта для своих пользователей, попробуйте указать профиль ProfileSettings в tbl. Обычно я использую serialize ($ setting_array()).

Если вы сохраняете пользовательские настройки за сообщение, создайте таблицу user_post_settings и ту же идею serialize() пользователя. Итак, один пользователь - один пост => одна строка.

Смежные вопросы