回答:
コードの任意の時点で例外をスローできます。
403:
throw new \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException();
404:
throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException();
次に、例外がDefaultExceptionHtmlSubscriberによってキャッチされ、サブリクエスト/system/403または/system/404が返されます。これは、一般的な「アクセス拒否」または「見つかりません」ページを表示しない場合は、基本的なサイト設定で設定できます。
その他のオプションは、コードの配置場所によって異なります。
コントローラーまたはフォームから403または404応答を返す
イベントサブスクライバーにいる場合は、イベントに応答を設定します。
すべきではないことは、直接応答を送信することです。これはコードを停止せず、2つの応答を生成します。1つは送信し、もう1つはDrupalカーネルによって返されます。これにより、予期しない動作が発生します。
システムのアクセス拒否ルートからリダイレクトを構築します。
$url = Url::fromRoute('system.403');
$response = new RedirectResponse($url->toString());
これにより、Drupalの標準アクセス拒否ページが表示されます。ルートはsystem.routing.ymlコアで定義されます。
一番上の答えは、ブラウザベースのアクセスが拒否され、壊れているように見えることです。Drupal UIを表示したい場合は、上記を使用してください。
ページから、以下を使用できます。
return new \Symfony\Component\HttpFoundation\RedirectResponse(\Drupal::url('your.module.route.name'));
のような:http : //www.drupal8.ovh/en/tutoriels/88/page-redirection-on-drupal-8
または送信元から:
$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);