Drupal 9 用户登录后跳转到指定页面
2022-03-28 本文已影响0人
又起风了_
有时我们需要根据用户的角色,登录成功后,跳转到不同的页面,以下是具体实现方法:
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
/**
* Implements hook_form_FORM_ID_alter().
*/
function MODULE_NAME_form_user_login_form_alter(&$form, FormStateInterface $form_state, $form_id) {
$form['#submit'][] = 'MODULE_NAME_user_login_form_submit';
}
/**
* Custom submit handler for the login form.
*/
function MODULE_NAME_user_login_form_submit($form, FormStateInterface $form_state) {
$user = \Drupal::currentUser();
if (in_array('administrator', $user->getRoles())) {
$url = Url::fromRoute('/to/admin/dashboard');
} else {
$url = Url::fromRoute('/to/normal/user');
}
$form_state->setRedirectUrl($url);
}