web-dev-qa-db-ja.com

ビューページのルート名を取得するには?

カスタム送信ハンドラで、ビューページのURLにリダイレクトしたい場合、ビュー名がteamで、パスが_/admin/team_であるとします。$from_state->setRedirect('route');が、$from_state->setRedirect('/admin/team');エラーが発生した場合、どのようにしてビュールート名を取得できますか?

16
David Mcsmith

ビューの正しいルート名は_view.VIEW_MACHINE_NAME.PAGE_MACHINENAME_(別のWordでは_"view.$view_id.$display_id"_)です。次のようなことを試してください

_use \Drupal\Core\Url;

$url = Url::fromRoute('view.VIEW_MACHINE_NAME.PAGE_MACHINENAME');
$form_state->setRedirectUrl($url);
_

そしてあなたの場合

_$url = Url::fromRoute('view.team.page_1'); // page_1 is my guess as to your page name, please replace it with your page machine_name
_

無駄を省く: ルート名を作成する方法

@ 4k4コメントの後、URLを使用してフォームをカスタムルーターにリダイレクトすることもできます

$form_state->setRedirectUrl($url)を使用するだけです

39
Yusef

ビューのコンテキストフィルターをパラメーターとして使用するには、arg_X、feを使用します。

$url = Url::fromRoute('view.team.page_1', ['arg_0' => 1234]);
5
rémy

devel モジュールのWebprofilerを使用すると、任意のページのルートを確認できます。

また、ページで実行されたDBクエリの数とリクエスト時間も表示されます。他の多くの機能に加えて。

Drupal 7および8で利用可能です。

4
Parag

簡単な例:それは動作します:)

use Drupal\Core\Url;
$form_state->setRedirect('view.VIEW_MACHINE_NAME.PAGE_MACHINENAME'); // view.my_view.page_1
2
kalidasan

Durpal 8の場合、「ルーター」データベーステーブルを調べて、再パラメーターを取得することもできます。

「名前」列で対応する値を探し、パス列と比較します。

$from_state->setRedirect('YOUR_DB_VALUE_HERE'); 
1
Olli Bolli