Symfony에서 다른 모듈에 대해 다른 템플릿 레이아웃을 설정하는 방법

StackOverflow https://stackoverflow.com/questions/610133

  •  03-07-2019
  •  | 
  •  

문제

Symfony의 다른 모듈에 대해 다른 템플릿 레이아웃을 설정하는 방법은 무엇입니까?

로그인 화면과 회원 섹션으로 구성된 은행 응용 프로그램이 있습니다. 따라서 사용자가 내 사이트로 이동하면 로그인 화면이 제공됩니다. 로그인 한 후 그는 은행 요구에 관계없이 회원 섹션으로 리디렉션됩니다.

그렇다면 로그인 화면과 멤버 섹션 내부의 페이지에 대한 다른 레이아웃을 설정하는 방법은 무엇입니까? Symfony는 사용하는 것 같습니다 frontend/templates/layout.php 모든 페이지의 템플릿으로. 다른 레이아웃을 정의 할 수 있습니까?

도움이 되었습니까?

해결책

예,보기 당 별도의 레이아웃을 정의하거나 레이아웃을 완전히 비활성화 할 수 있습니다. 이렇게하려면 모듈의 /config 디렉토리에있는 view.yml 파일을 만들거나 편집해야합니다. 모듈의 모든 뷰에 사용될 레이아웃을 또는 각보기에 별도로 정의 할 수 있습니다. 예를 들어:

#in /apps/my_app/modules/my_module/config/view.yml

#this will apply custom_layout to all views of the module
all:
  layout: custom_layout

#this will apply login_layout to the loginSuccess view
loginSuccess:
  layout: login_layout

#disable layout for this view
homeSuccess:
  has_layout: false

모든 경우에 레이아웃은 앱 /템플릿 디렉토리의 파일입니다 (.php가 추가). 모듈의보기 구성 파일에서 레이아웃 지시문을 정의하지 않으면 기본 레이아웃이 사용됩니다.

다른 팁

또는 내부 작업이라면 간단히 사용할 수 있습니다.

$this->setLayout('name_file_layout_without_extension');

모듈 내부에서 사용중인 템플릿에서 작업 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top