可以改变先前提交回调的$ form_state ['redirect']吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以改变先前提交回调的$ form_state ['redirect']吗?相关的知识,希望对你有一定的参考价值。

function module_form_alter(&$form, $form_state, $form_id) {
  if($form_id == "user_login"){             
       $form['#submit'][] =  'module_userlogin_callback';          
     }
}

function module_userlogin_callback($form, $form_state){
    global $base_url;
    $current_path = $base_url . '/' .'about';
    $form_state['redirect']=$current_path;
}

事实是,原始的提交回调user_login_submit已经有一个$ form_state ['redirect']到用户个人资料页面,我想改变它并重定向到about页面而没有覆盖原始的提交回调函数。它可能吗?目前是$ form_state [我给出的'redirect']不起作用。我可以取消它并重定向到页面吗?

答案

我有类似的问题,但我通过在template.php中编写我的form_alter函数来修复它,如下所示:

your_theme_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'user_login') {
         $form['#submit'][] = 'your_theme_userlogin_callback';
    }
}
function your_theme_userlogin_callback(&$form, &$form_state) {
   $form_state['redirect'] = '$url';//your redirect url path
}

以上是关于可以改变先前提交回调的$ form_state ['redirect']吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将项目恢复到android studio中的先前提交

React ref回调函数例子

我如何重新推送先前的提交?

基于先前调用的响应的异步调用,避免回调地狱

将先前的提交分解为多个提交

即使我在提交之前 git 添加了所有文件,我可以恢复到只有一个文件的先前版本吗?