カスタムモジュールを作成しました。ページにカスタムフォームを生成します。フォームを送信すると、新しいノードが作成されます。それで、フォームページにリダイレクトしていますが、新しいノードページにリダイレクトしたいと思います。
このフォームをsubmitForm関数の最後に追加します。
$form_state->setRedirect('node/'.$mynewnode->id());
しかし、Webサイトからフォームを送信すると、真っ白な死の画面が表示されます。私のApacheログ:
...
Uncaught PHP Exception Symfony\\Component\\Routing\\Exception\\RouteNotFoundException: "Route "node/153" does not exist.
...
その後、手動でnode/153ページに移動しても問題はありません。ページはうまく機能します。
私の質問:私の間違いはどこにありますか?新しいノードの作成後にリダイレクトを設定するにはどうすればよいですか? submitForm関数から可能ですか?
SetRedirect関数を使用する場合は、見つかったそのドキュメントを確認することをお勧めします https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Form%21FormState。 php/function/FormState%3A%3AsetRedirect/8
その後、ffをベースにすることができます。 FormSubmitter :: redirectForm または FormSubmitterInterface :: redirectForm からのコード。したがって、コードは次のようになります。
$form_state->setRedirect('entity.node.canonical',
array('node' => $mynewnode->id()),
));
また、core/modules/nodeを検索することで、 "entity.node.canonical"がどこにあるのか、どこで宣言されているのか、何が何であるのかを知ることもできます。
すべてがうまくいくことを願っています!