在用户编辑页面上添加用户角色 Drupal 8
Add user role on user edit page Drupal 8
Drupal 8 网站。我有一个用于编辑用户的表单(在 url: user/{user}/edit),我在那里添加了两个复选框,
第一个复选框是 driver 角色,第二个复选框角色是乘客(例如)。
我希望当用户选择第一个复选框并单击保存时。应该更新他的个人资料,并且应该添加之前选择的角色。而第二个的作用是退休(如果是的话)。
我认为我们可以做到,如果您根据选中的复选框分配提交处理程序角色分配。
但我不知道如何正确编写代码
enter image description here
不清楚自己想要什么,但可以做任何事情
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();
}
希望对您有所帮助
谢谢
Drupal 8 网站。我有一个用于编辑用户的表单(在 url: user/{user}/edit),我在那里添加了两个复选框, 第一个复选框是 driver 角色,第二个复选框角色是乘客(例如)。
我希望当用户选择第一个复选框并单击保存时。应该更新他的个人资料,并且应该添加之前选择的角色。而第二个的作用是退休(如果是的话)。
我认为我们可以做到,如果您根据选中的复选框分配提交处理程序角色分配。
但我不知道如何正确编写代码
enter image description here
不清楚自己想要什么,但可以做任何事情
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();
}
希望对您有所帮助
谢谢