2013-11-01 2 views
0

내 CakePHP 프로젝트 중 하나에서 "관리자 패널/인터페이스"를 만들고 싶습니다. 당신은 현대 웹 사이트에서 매우 흔한 것을 알고 있습니다. 처음에는 이것을 위해 플러그인을 만들 계획이었습니다. 왜 작동하지 않았는 지, 나는 나중에 도움을 요청할 것입니다. 그러나 다음으로, 나는 CakePHP가 이미 "Scafolding"을 사용하여이 기능을 제공한다는 것을 알았다. 나는 지금 이것을 시도하고있다. 그러나 그것이 내가 기대했던 것처럼 작동하지 않는 이유를 모른다. 여기에 내가 무슨 짓을 : 나는 그것을 만든 이유CakePHP 프로젝트의 관리자 패널/인터페이스

내가 관리자 패널에 대한 별도의 컨트롤러가 있어야한다 생각
app/config/core.php : 
--------------------- 
. 
. 
. 
Configure::write('Routing.prefixes',array('admin')); 
. 
. 
. 

app/Controller/AppController.php : 
---------------------------------- 
. 
. 
. 
public $components=array(
    'Session', 
    'Auth'=>array(
     'loginRedirect'=>array('admin'=>true,'controller'=>'home','action'=>'index'), 
     'logoutRedirect'=>array('controller'=>'home','action'=>'index'), 
     'authorize'=>array('Controller') 
    ) 
); 
. 
. 
. 

은, 그건 :

app/Controller/AdminsController.php : 
------------------------------------- 
<?php 
    App::uses('AppController','Controller'); 
    class AdminsController extends AppController{ 
     public $name='Admins'; 
     public $scaffold='admin'; 
    } 

하지만이 작동하지 않았다. 그래서, 나는 CakePHP가 모든 개별 컨트롤러에이 기능을 제공한다고 생각했다. 내 말은, 나는 다른 모듈/컨트롤러/서브 시스템이 아닌 모든 개별 컨트롤러에 대한 관리자 패널을 가지고 있다고 생각했다.

<?php 
    App::uses('AppController','Controller'); 
    class Controllers1Controller extends AppController{ 
     public $name='Controllers1'; 
     public $scaffold='admin'; 
    } 

다음이 URL로 이동하려고 : my_site/admin/jobs/view 하지만 여전히 같은 결과 그래서, 난 내 기존 컨트롤러 "컨트롤러 1"의 작은 하나를 변경했습니다.

제게 의견을주십시오. 어떻게해야합니까? "관리자 패널"을위한 새로운 플러그인을 만들어야합니까? 그렇지 않으면 스 캐 폴딩이 더 좋을까요? 내 잘못은 뭐니?

감사

답변

1

AdminsController은 관리자 접두사를 사용할 필요가 없습니다, 당신이해야 할 모든 당신이 이미했던 것처럼 Routing.Prefixes을 정의합니다. 당신이 그것을 작동하도록 할 필요가 무엇인지 우리에게 언급 한 JobsController의 예를 들어

Configure::write('Routing.prefixes',array('admin')); 

: 라우팅 접두사 작업을 할 수있는 방법은 접두사와 메소드를 선언하는 것입니다

<?php 

App::uses('AppController', 'Controller'); 

class JobsController extends AppController { 
    public $scaffold = 'admin'; 
} 

때문에 추가 컨트롤러를 사용하지 마십시오.

<?php 


App::uses('AppController', 'Controller'); 

class ArticlesController extends AppController { 

     function admin_index() { 
     //This method can be found under /admin/articles 
     } 
} 
+0

을 입력하십시오. 고마워. 나는 그것이 지금 일할 것이다라고 생각한다. 그러나 이렇게 "admin panel"을 만들어야합니다. 그렇지 않으면 다른 플러그인을 만들어야합니까? @vicocamcho – user2387319

+1

그것까지입니다. 나중에 다른 프로젝트에서 다시 사용할 수 있도록 기본 응용 프로그램에 배치하거나 플러그인으로 만들 수 있습니다. – vicocamacho

+0

감사. @vicocamacho – user2387319

관련 문제