답변:
코드의 어느 시점에서나 예외를 던질 수 있습니다.
403 :
throw new \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException();
404 :
throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException();
그런 다음 DefaultExceptionHtmlSubscriber에 의해 예외가 포착되고 하위 요청 이 반환 /system/403되거나 /system/404일반 "액세스 거부"또는 "찾을 수 없음"페이지를 표시하지 않으려는 경우 기본 사이트 설정에서 구성 할 수 있습니다.
다른 옵션은 코드가있는 위치에 따라 다릅니다.
컨트롤러 또는 폼에서 403 또는 404 응답을 반환
이벤트 가입자 인 경우 이벤트에 응답을 설정하십시오.
하지 말아야 할 것은 직접 응답을 보내는 것입니다. 이것은 코드를 멈추지 않으며 두 개의 응답을 생성합니다. 하나는 전송 한 것과 하나는 Drupal 커널에 의해 반환됩니다. 예기치 않은 동작이 발생합니다.
페이지에서 다음을 사용할 수 있습니다.
return new \Symfony\Component\HttpFoundation\RedirectResponse(\Drupal::url('your.module.route.name'));
: http://www.drupal8.ovh/en/tutoriels/88/page-redirection-on-drupal-8
또는 from from 제출 :
$form_state->setRedirect('your.module.route.name');
그런 다음 'your.module.route.name'의 액세스 권한을 구성하십시오.
액세스 권한을 구성하는 방법을 모르는 경우 다음을 확인하십시오. http://www.drupal8.ovh/en/tutoriels/66/create-a-custom-permission-drupal-8
return new Response('', Response::HTTP_FORBIDDEN);