$form_state['redirect'] 是 Drupal 中用于重定向回调函数的一个属性。一旦 $form_state['redirect'] 设置好了,通常是在表单提交后,就不能再更改它了。
$form_state['redirect'] 的作用是告诉 Drupal 在表单处理完成后要执行的重定向操作。它可以是一个 URL,也可以是一个包含路由参数的数组。
如果你需要在提交回调之后更改重定向地址,你可以考虑使用其他方法来实现。
一种常见的方法是使用 Drupal 的消息系统来显示一个成功消息,然后在表单的构建函数中根据消息的存在来决定是否执行重定向。例如:
function mymodule_my_form_submit($form, &$form_state) {
// 执行表单的提交操作
// 显示一个成功消息
drupal_set_message(t('The form was submitted successfully.'));
// 将一个标志位设置为 TRUE
$form_state['redirect_flag'] = TRUE;
}
function mymodule_my_form($form, &$form_state) {
// 构建表单
// 如果提交回调已经执行并且重定向标志位被设置为 TRUE,则执行重定向
if (isset($form_state['redirect_flag']) && $form_state['redirect_flag']) {
$form_state['redirect'] = 'path/to/redirect';
}
return $form;
}
在这个例子中,当表单提交后,成功消息被显示,然后在表单的构建函数中检查一个名为 $form_state['redirect_flag']
的标志位。如果标志位被设置为 TRUE,则设置重定向地址为 'path/to/redirect'。
对于 Drupal 中的具体概念和名词,我可以为您提供更多信息,但需要指定具体的问题或概念。
领取专属 10元无门槛券
手把手带您无忧上云