Как я могу добавить мужской пол всем пользователям, использующим SQL-запрос? Вот мой код, и я хочу включить поле мужского пола.
$table = Engine_Api::_()->getDbtable('users', 'user');
$db = $table->getAdapter();
$db->beginTransaction();
try {
$user = $table->createRow();
$user->displayname = $displayname;
$user->save();
$id = $user->getIdentity();
$user->email = $firstName . $id . '@mail.com';
$user->username = $firstName . $id;
$user->enabled = 1;
$user->approved = 1;
$user->verified = 1;
$user->save();
$user->setPhoto($imagePath);
$userItem = $usersTable->createRow();
$userItem->item_id = $id;
$userItem->save();
$this->_activateSubscription($user);
$db->commit();
}
С уважением
Вам нужно создать строку в engine4_user_fields_values с идентификатором пользователя, мета-идентификатором поля и идентификатором опции поля. Вот идентификаторы, которые нам нужны:
Gender [field_id : 5] in engine4_user_fields_meta
Male [option_id : 2] in engine4_user_fields_options
Female [option_id : 3] in engine4_user_fields_options
Я написал женский и мужской варианты в следующем коде. Используйте один по мере необходимости и удалите другой.
$fieldsValuesTable = Engine_Api::_()->fields()->getTable('user', 'values');
$row = $fieldsValuesTable->createRow();
$row->item_id = $user->getIdentity();
$row->field_id = 5; //Gender
$row->value = 2; //Male
$row->value = 3; //Female
$row->save();
Других решений пока нет …