Добавить роль пользователя на странице редактирования пользователя Drupal 8 - PullRequest
0 голосов
/ 30 мая 2018

Веб-сайт на Drupal 8. У меня есть форма для редактирования пользователя (на URL: user / {user} / edit), я добавил туда два флажка, первый флажок - роль драйвера, а второй флажок -пассажир (например).

Я хочу, чтобы, когда пользователь выбирает, например, первый флажок, и нажимает сохранить.Его профиль должен быть обновлен, а выбранная ранее роль должна быть добавлена.И роль второго состоит в том, чтобы уйти в отставку (если он был).

Я думал, что мы можем сделать это, если вы назначите назначение роли обработчика отправки на основе выбранного флажка.

но яне знаю, как правильно написать код

введите описание изображения здесь

1 Ответ

0 голосов
/ 30 мая 2018

Не совсем ясно, что вы хотите, но вы можете сделать что-нибудь в

hook_form_alter ()

вот код

/**
 * Implements hook_form_alter().
 */
function MODULENAME_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
  switch ($form_id){
    case 'user_profile_form':
      $form['#submit'][] = 'user_update_func';

    break;
  }
}

/**
 * submit callback fuction.
 */
function user_update_func($form, \Drupal\Core\Form\FormStateInterface $form_state) {
  $currentUser = \Drupal::currentUser();
  $currentUser->addRole('new_selected_role');
  $currentUser->removeRole('old_selected_role');
  $currentUser->save();
}

Надеюсь, это поможет вам

СПАСИБО

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...