我尝试在登录后将用户重定向到url中设置的目的地,比如: /user/ login ? destination =my-modules
我使用这个模块重定向到登录页面,而不是显示403页面:https://www.drupal.org/project/r4032login
它运行良好,并使用'?destination=‘参数生成网址,但在我登录后,我每次都被重定向到主页。
模块应该自己管理这个,但我仍然尝试创建一个自定义模块来执行重定向,我创建了一个自定义模块并安装了它,但仍然没有发生任何事情。
下面是我的代码:
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
/**
* Implements hook_form_FORM_ID_alter().
*/
function test_redirect_form_user_login_form_alter(&$form, FormStateInterface $form_state, $form_id) {
$form['#submit'][] = 'test_redirect_user_login_form_submit';
}
/**
* Custom submit handler for the login form.
*/
function test_redirect_user_login_form_submit($form, FormStateInterface $form_state) {
$url = Url::fromRoute('a route');
$form_state->setRedirectUrl($url);
}我该如何正确地做到这一点?谢谢
发布于 2021-09-30 19:07:52
我知道你要求帮助你的代码。我不太擅长定制模块。也许这个模块会对你有所帮助:
https://www.drupal.org/project/login_destination
我已经用过了,它很不错,但可能不适合你的需求。
安装后,您可以选择为mysite.com/admin/config/people/login-destination上的不同用户设置不同的登录目的地
发布于 2021-11-26 10:25:17
User Redirect (Redirect user after Login or Logout)有助于在登录或注销活动后重定向用户。此模块与Drupal最新版本兼容,并且具有完整的安全覆盖范围。
https://stackoverflow.com/questions/69395498
复制相似问题