在用户编辑页面Drupal 8上添加用户角色

时间:2018-05-30 11:20:51

标签: php drupal drupal-8 user-roles

Drupal上的网站8.我有一个用于编辑用户的表单(在url:user / {user} / edit),我在那里添加了两个复选框, 第一个复选框是驱动程序角色,第二个复选框角色是乘客(例如)。

我想在用户选择第一个复选框时选择,然后点击保存。应更新他的个人资料,并应添加所选的早期角色。而第二个的作用是退休(如果是)。

如果您根据所选复选框分配提交处理程序角色分配,我认为我们可以这样做。

但我不知道如何正确编写代码

enter image description here

1 个答案:

答案 0 :(得分:1)

不清楚你想要什么,但你可以做任何事情

  

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();
}

希望这有助于你

感谢