我在提交编辑节点表单时尝试更改重定向,方法是将以下行添加到我的template.php文件中,在我的主题中
$form['#redirect'] = FALSE;
Run Code Online (Sandbox Code Playgroud)
我确信template.php文件运行良好,因为我有其他行我可以更改,例如,一些元素的权重.但重定向不起作用.
我也试过$ form ['#redirect'] ='anotherPage'; 没有成功.
我究竟做错了什么 ?我正在关注Drupal API,关于表单:http: //api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/6#redirect
谢谢
IIRC,$form['#redirect']只有在表格处理中没有设置其他重定向时,该条目才有效.如果你看一下node_form_submit(),你可以看到它设置了自己的重定向$form_state['redirect'] = 'node/'. $node->nid;,从而覆盖了你之前在表单定义中定义的重定向.
您可以通过将自己的提交处理程序回调添加到$form['#submit']数组来解决此问题(需要在默认值之后放置).在该回调中,您可以将其更改$form_state['redirect']为所需的路径.
注意:如果$form['#submit']数组在此期间尚未包含默认条目hook_form_alter(),则可能需要通过添加回调来$form['#after_build']添加另一个间接- 在该回调中,您最终有机会在呈现之前操作表单数组.(好吧,几乎是最终的 - $form['#pre_render']后来还有;)