양식 제출 후 리디렉션 8에서 양식 제출 후 사용자를

Drupal 8에서 사용자 정의 양식을 작성합니다. 사용자 $form_state['redirect'] = 'mycustompath';정의 제출 핸들러에서 설정 하여 Drupal 7에서 사용자 정의 경로로 경로 재 지정할 수 있지만 Drupal 8에서 양식 제출 후 사용자를 재지 정하는 방법은 무엇입니까?

나는 submitForm방법을 사용해야한다는 것을 안다 .

public function submitForm(array &$form, FormStateInterface $form_state)
{
   //submissions jobs ...
   //redirect path
}



답변

“submitForm”메소드에서 아래 코드를 작성하십시오

 $form_state->setRedirect('machine_name');
 return;

machine_name라우팅 파일에 언급 된 시스템 이름은 어디 입니까?

이게 도움이 되길 바란다 .. 🙂


답변

빌드 폼에서 설정하려면 다음과 같은 라우팅 경로를 사용해야합니다.

use Drupal\Core\Url;

$url = Url::fromRoute('route.path');
$form_state->setRedirectUrl($url);


답변

사용자 편집 양식을 홈 페이지 또는 다른 페이지로 리디렉션하려면 아래 코드를 따르십시오.

먼저 add-hook-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;
}

도움이 되길 바랍니다.


답변