보기 페이지의 경로 이름을 얻는 방법은 무엇입니까?


16

내 맞춤 제출 핸들러에서보기 페이지 URL로 리디렉션하고 싶습니다.보기 이름이 이고 경로가 이라고 가정하고 /admin/team사용해야한다는 것을 $from_state->setRedirect('route');알았지 만 $from_state->setRedirect('/admin/team');오류가 발생했습니다. 뷰 경로 이름을 어떻게 가져올 수 있습니까?


정적 YAML 메뉴 구성에도 필요합니다.
vijaycs85

1
직접 응답하지는 않지만 다른 사용자 정의 모듈의 사용자 정의보기에 대한 링크와 동일한 질문이 있으므로 구성 파일 메뉴 : MODULE.links.menu.yml route_name: view.YOUR_CUSTOM_MODULE_CONTAINS_CUSTOM_CONTENT_TYPE.page_1page_1이 페이지보기 모드의 이름 인 경우 경로 옵션으로 노드를 만듭니다 .
Jean-Luc Barat

답변:


39

보기에 대한 올바른 경로 이름은 view.VIEW_MACHINE_NAME.PAGE_MACHINENAME(즉, "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)


이 답변은보기에 대한 올바른 경로 이름을 얻으므로 약간 떨어져 있으므로 해당 경로 이름에서 URL 객체를 만들 필요가 없습니다. 경로 이름을 직접 사용할 수 있어야합니다. $form_state->setRedirect('view.VIEW_MACHINE_NAME.PAGE_MACHINENAME');
kbrinner

5

뷰 컨텍스트 필터를 매개 변수로 사용하려면 arg_X, fe를 사용하십시오.

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

3

devel 모듈 의 Webprofiler를 사용하면 모든 페이지의 경로를 볼 수 있습니다.

또한 페이지에 작성된 DB 쿼리 수와 다른 많은 기능 외에 요청 시간도 표시합니다.

Drupal 7과 8에서 사용할 수 있습니다.


2

간단한 예 : 작동합니다 :)

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

Drupal \ Core \ Url을 사용할 필요가 없습니다. 경로를 올바르게 사용하고 있으므로 URL 클래스가 필요하지 않습니다.
kbrinner 2018 년

1

Durpal 8의 경우, redirct 매개 변수를 얻기 위해 "router"데이터베이스 테이블을 조사 할 수 있습니다.

"이름"열에서 해당 값을 찾아 경로 열과 비교하십시오.

$from_state->setRedirect('YOUR_DB_VALUE_HERE'); 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.