Дополнительные поля для пользователей

Привет, мне необходимо сохранять дополнительную информацию о пользователях. Например, нужно сохранить вес, рост и тип страховки.

Я использую таблицу _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);
Прошу о помощи, ато совсем запутался…
dopeless
29 сентября 2015, 11:54
modx.pro
1 134
0

Комментарии: 2

Сергей Шлоков
29 сентября 2015, 15:51
0
Таблица _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.

А можно вот так
    dopeless
    29 сентября 2015, 16:03
    0
    да я в extended не хотел писать, т.к. там будут в некоторых из опций ключи храниться. Тоесть значения надо будет из других таблиц тянуть в соответствии с ключами… неудобно будет, если оно все в джейсоне будет храниться… придется, видимо, разбираться с ClassExtender или чем-то в таком духе…
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2