繁体   English   中英

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

[英]Add user role on user edit page Drupal 8

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

我希望当用户选择例如第一个复选框并单击“保存”时。 他的个人资料应该更新,并且应该添加所选的早期角色。 第二个角色是退休(如果有的话)。

我认为,如果您基于选定的复选框分配提交处理程序角色,我们可以做到。

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

在此处输入图片说明

不清楚您想要什么,但是您可以在其中做任何事情

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

希望这对您有帮助

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM