2012-01-05 6 views
1

해당 URL "domain/controller/index"와 "admin_index"라고하는 페이지에 해당 URL " 도메인/관리/컨트롤러/색인 ". 속임수는 페이지의 매개 변수 중 하나가 뷰가 렌더링 된 뷰의 뷰를 나타내는 플래그 인 동안 두 뷰가 동일한 뷰를 사용하여 렌더링하고 논리가 동일한 함수를 사용하도록하려는 것입니다.CakePHP : 동일한 컨트롤러 기능을 사용하여 2 페이지를 렌더링하는 방법

현재 "색인"페이지에 데이터가있는 테이블이 있기 때문에 필요합니다. 페이지에는 컨트롤러 쪽에서 상당한 양의 논리가 필요한 해당 페이지에 대한 스마트 필터가 있습니다. 내 문제는 현재 모든 사용자에게 공유하고 싶지 않은 "편집"버튼이 각 행에 있다는 것입니다.

현재 웹 서버 (내 경우에는 Apache)의 액세스를 제한하여 이러한 종류의 페이지를 보호하기 위해 admin 접두사를 사용하고 있습니다.

컨트롤러 기능을 복제하지 않고이를 구현하는 방법에 대한 아이디어가 있습니까?

답변

1

이 (내가 CakePHP의 2.0.x에서 응용 프로그램에 그것을 테스트했지만, 2.0 특정해야이 코드에서 아무것도) 시도 :

//controller 
public function index($admin = false) { 
    $this->set(compact('admin')); 
} 
public function admin_index() { 
    $this->index(true); //calls the index function to do all that stuff 
    $this->render('index'); //tells it to render the 'index' view 
} 

당신이 /index 페이지에 충돌, 모두가해야 정상적으로. admin_index을 누르면 index 함수에서 논리를 실행 한 다음 index보기를 사용하도록 지정합니다.

관련 문제