Answers:
在您的“ submitForm”方法中,编写以下代码
$form_state->setRedirect('machine_name');
return;
machine_name
路由文件中提到的计算机名称在哪里。
我希望这有帮助 .. :)
'<front>'
工作你对路径别名有什么看法?这是我的路线tcdev.content: path: '/start' defaults: _controller: 'Drupal\tcdev\Controller\TrainingCenterController::content' _title: 'Start Training Center' requirements: _permission: 'access content'
如果要设置为buildform,则需要使用一些路由路径。
use Drupal\Core\Url;
$url = Url::fromRoute('route.path');
$form_state->setRedirectUrl($url);
Url' not found
use Drupal\Core\Url;
(没有前面的斜杠)
$form_state->setRedirectUrl($url);
也可以在SubmitForm()中使用。
如果要将用户编辑表单重定向到主页或其他页面,请遵循以下代码。
首先,添加钩子-hook_form_alter`
function yourmodulename_form_alter(&$form, FormStateInterface $form_state, $form_id)
{
if ($form_id === 'your form id') {
$form['actions']['submit']['#submit'][] = 'modulename_user_edit_form_submit';
}
}
添加钩子后添加以下功能
function modulename_user_edit_form_submit($form, FormStateInterface &$form_state) {
global $base_url; //set base path
$response = new Symfony\Component\HttpFoundation\RedirectResponse($base_url ."/xyz"); //set url
$response->send();
return;
}
希望对您有所帮助。
$form_state->setRedirect()
在表单中提交,以便可以处理所有其他提交处理程序。
$form_state->setRedirect('/start');return;
,让我们假设我想重定向到主页。什么是确切的代码段?