2

ZF2 기반 사이트를 구축 중이며 2 개의 다른 레이아웃이 있습니다. 여기에는 공개 페이지와 사용자 인증이 필요한 일부 내부 페이지가 있으며, 각 페이지 세트에는 레이아웃이 있습니다. 처음에 컨트롤러 플러그인을 만들고 사용자가 ID를 가지고 있는지 확인한 다음 레이아웃을 변경하지만 로그인하지 않은 사용자의 공개 페이지 레이아웃도 변경했습니다. 원하지 않는 페이지입니다. 또한 컨트롤러 플러그인에서 레이아웃을 변경하는 방법을 모르겠습니다.Zf2 레이아웃 및 인증

내부 페이지의 레이아웃에는 현재 사용자 및 다른 테이블의 다른 정보에 관한 정보도 필요합니다. 그래서 사용자가 ID를 가지고 있는지 확인하고 레이아웃 변수를 설정할 다른 플러그인을 만들려고합니다. 변수를 설정하기 위해 컨트롤러 플러그인에서 레이아웃 객체를 얻는 방법을 모르겠습니다. 또한 하나의 플러그인이 다른 플러그인에 액세스하는 방법을 알지 못합니다.

또한 내부 페이지에 대해 사용자가 로그인했는지 여부를 확인하고 있습니다. 그가 신원이 없다면, 나는 그를 로그인 페이지로 보냈습니다. 이로 인해 반복되는 코드가 많아졌습니다.이 코드를 컨트롤러 플러그인으로 옮기는 방법이 있습니다. 특정 페이지에서 사용자의 신원을 확인하고 사용자가 신원을 가졌다면 페이지에 액세스 할 수있게합니다. 그렇지 않으면 로그인으로 보냅니다. 화면.

답변

1

궁극적으로 이것은 사용자가 작성하려는 사용자 정의 LayoutModule처럼 보입니다. 이미 EdpModuleLayouts을 보신 적이 있으십니까? 그렇지 않은 경우 그렇게하십시오. 이 모듈은 기본적으로 무엇을

은 다음과 같습니다이 매우 모듈에 대한 구성 내에 부착 된 레이아웃이있는 경우 현재의 모듈을 다음 확인을 확인합니다.

당신은 궁극적으로 레이아웃을 전체 모듈에 연결하지 않고 특정 라우트에만 연결한다는 점만 제외하면 궁극적으로이를 필요로합니다. 현재 경로 인이 무엇인지 확인하고, 구성레이아웃이 연결된 경로 인 경우 레이아웃을 변경합니다.

+0

감사합니다 샘, 그 한 가지 문제를 해결합니다. 둘째, 제 2 레이아웃을위한 레이아웃 변수에 사용자 정보를 설정해야합니다. –

+0

ViewHelpers - UserIdentity에 액세스하고 원하는 것을 표시하는 VH입니다. – Sam

+0

하지만 표시해야하는 정보는 사용자 항목의 일부가 아닙니다. 실제로 적어도 3 곳에서 검색된 응용 프로그램의 요약입니다. –