Дополнительные поля для пользователей
Привет, мне необходимо сохранять дополнительную информацию о пользователях. Например, нужно сохранить вес, рост и тип страховки.
Я использую таблицу _user_settings
Например
Я использую таблицу _user_settings
Например
$properties = array(
'fk' => $newUserId,
'key' => 'insurance_type',
'name' => 'Insurance Type',
'description' => '',
'xtype' => 'textfield',
'namespace' => 'core',
'value' => $formData->insuranceType,
);
$response = $modx->runProcessor('security/user/setting/create', $properties);
Но я не могу понять, как подгрузить данные из этой таблицы при получении объекта пользователей. $c = $modx->newQuery('modUser');
$c->innerJoin ('modUserProfile','Profile');
$c->where(array(
'active' => true,
'primary_group:!=' => 2,
));
$c->select(array(
'modUser.id',
'Profile.fullname',
'Profile.email',
'Profile.phone',
'Profile.photo',
));
$c->sortby('Profile.fullname','ASC');
$c->prepare();
$c->stmt->execute();
$users = $c->stmt->fetchAll(PDO::FETCH_ASSOC);
Прошу о помощи, ато совсем запутался… Комментарии: 2
Таблица _user_settings используется для других целей. Тогда уж лучше _user_attributes через modUserProfile.
Записываем в базу
А можно вот так
Записываем в базу
// объект нужного пользователя
$user = $modx->getObject('modUser', $id);
$properties = array(
...
}
$user->Profile->set('extended',$properties);
$user->save();
Получать из базы можно через объекты, а можно через newQuery()$c = $modx->newQuery('modUser');
$c->innerJoin ('modUserProfile','Profile');
$c->where(array(
'active' => true,
'primary_group:!=' => 2,
));
$c->select(array(
'modUser.id',
'Profile.fullname',
'Profile.email',
'Profile.phone',
'Profile.photo',
'Profile.extended',
));
$c->sortby('Profile.fullname','ASC');
$c->prepare();
$c->stmt->execute();
$users = $c->stmt->fetchAll(PDO::FETCH_ASSOC);
В поле extended теперь хранятся новые данные в формате JSON.А можно вот так
да я в extended не хотел писать, т.к. там будут в некоторых из опций ключи храниться. Тоесть значения надо будет из других таблиц тянуть в соответствии с ключами… неудобно будет, если оно все в джейсоне будет храниться… придется, видимо, разбираться с ClassExtender или чем-то в таком духе…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.