2012-01-22 4 views
0

메인 레이아웃에 대부분 정의 된 사이드 바가 로그인 폼을 표시합니다. 사용자가 로그인 한 후 해당 양식을 제거하고 사용자 데이터로 바꾸어야합니다. 또한 하위 섹션을 표시하기 위해 지원 섹션을 볼 때 해당 사이드 바를 변경해야합니다.CakePHP에서 뷰를 기반으로 레이아웃 요소를로드하십시오.

요소로드를 각보기로 이동해야합니까 아니면 다른 방법이 있습니까? 사전에

감사합니다, 데니스

답변

1

결론은 당신이거야이다는 if($supportpage){} elseif($loggedin){} else{} 블록이 필요합니다. 당신이 당신의 레이아웃 파일에 넣어하지 않으려면 각 옵션 요소를 생성하고 app_controller에서 다음 set() 올바른 수 :

if ($supportpage) $sidebar = 'support'; 
elseif ($loggedin) $sidebar = 'loggedin'; 
else $sidebar = 'notloggedin'; 

$this->set(compact($sidebar)); 

그리고이 레이아웃에 $this->element($sidebar)을 넣어.

+0

안녕하세요. AppController와 멋진 ideea. 나는 certanly 그것을 시도 줄 것이다. 나는 html을 가능한 한 깨끗하게 유지하는 것을 좋아합니다. 이것이 내가 처음에 요소를 사용하도록 선택한 이유입니다. – DenisR

관련 문제