カスタムサブミットハンドラーを追加し、フォームがサブミットされた後にカスタムルートにリダイレクトします。
これは私が使ったものです
use Drupal\Core\Form\FormStateInterface;
use Symfony\Component\HttpFoundation\Request;
use \Drupal\Core\Url;
function MYMODULE_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if ($form_id == 'node_trends_form' || $form_id == 'node_trends_edit_form') {
foreach (array_keys($form['actions']) as $action) {
if ($action != 'preview' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'submit') {
$form['actions'][$action]['#submit'][] = 'zyetondev_sync_trends_submit';
}
}
}
}
function zyetondev_sync_trends_submit(array $form, FormStateInterface $form_state) {
$url = Url::fromRoute('view.trends.page_1');
// die(Url::fromRoute('view.trends.page_1')->toString());
drupal_set_message("Done");
$form_state->setRedirect($url);
}
サブミットハンドラーが実行され、リダイレクトリダイレクトが正しく機能するようになりました。問題は、?destination=
URL を使用している場合です。URL を使用している場合でも、リダイレクトを強制するにはどうすればよい?destination=
ですか?
要件を正しく理解した場合、リダイレクト中にクエリパラメータも含めたいですか?間違っていれば私を訂正してください。
—
Yogesh
@Yogeshが/ admin / contentにいるとします。URLに
—
ユセフェリ2016
?destination=/admin/content
追加されたノードを編集しようと?destination=
すると、URLに存在している場合でもカスタムパスをリダイレクトしたいと思います。