2013-10-26 1 views
0

저는 CakePHP를 사용하여 웹 서비스를 구축하고 있으며 모든 컨트롤러 메소드에 대해 output.ctp라는 뷰 하나를 사용하고 싶습니다. 지금까지 나는 메소드 자체와 동일한 이름을 가져야하는 뷰를 하나만 가질 수 있다는 것을 알았습니다.CakePHP 컨트롤러의 모든 메소드에 대해 하나의 뷰 재사용

내가 보내는 모든 json 파일에 존재해야하는 출력 템플릿에 매우 구체적인 코드가 있으므로이 작업을 수행하고 있습니다 ... 누구든지 도움을받을 수 있습니까? 어떤 메서드에서든지

답변

3

$this->render('output');은 메서드 이름에 관계없이 해당 뷰가 대신 렌더링됩니다.

또는 $this->render('/OutputController/output');보기 컨트롤러 외부에서.

달성하려는 대상에 따라 요소가 더 나은 선택 일 수 있습니다.

//output controller 
$this->render('output'); 

//posts controller 
$this->render('/Output/output'); 

편집 : 시스템이 나를 이렇게 (8 분)을 수행 할 수 있습니다 때

<?php 

class AdminApiController extends AppController { 

    var $uses = array('Post', 'User', 'Application'); 

    public function posts() { 
     $this->layout = 'ajax'; 
     $this->set('data', $this->Post->find('all')); 
     $this->render('/Api/output'); 
    } 

    public function user() { 
     $this->layout = 'ajax'; 
     $id = $this->Auth->user('id'); 
     $this->User->id = $id; 
     $this->request->data = $this->User->read(null, $id); 
     unset($this->request->data['User']['password']); 
     unset($this->request->data['User']['password_token']); 
     $this->set('data', $this->request->data['User']); 
     $this->render('/Api/output'); 
    } 

    public function applications() { 
     $this->layout = 'ajax'; 
     $this->set('data', $this->Application->find('all')); 
     $this->render('/Api/output'); 
    } 
+0

우수가 ... 받아 들일 것입니다 감사합니다 작업 고생 클래스 ... :) – Ondrej

관련 문제