2010-08-11 5 views
0

동일한보기에서 다른 컨트롤러를 호출하는 메서드를 찾을 수 없습니다. 가장 가까운 것은 $ html-> link ("사용자 등록", array ('컨트롤러'=> '사용자', '동작'=> '등록')입니다.하나의보기에서 다른 컨트롤러를 호출하는 cakephp?

그래서 cakephp의 블로그 자습서를 작성했습니다. posts_controller.php이 있으며, 이제 별표 등급 시스템을 추가하고 싶습니다. 당신이 다운로드 할 수있는 몇 가지 물건을 봤 거든이 기발한 이미 등급 시스템을 가지고있어 : http://www.reversefolds.com/articles/show/rating2

지금 나는 2 개의 컨트롤러 rating_controller.php와 post_controller.php를 가지고있다.

내 기본 경로 '/'가 포스트 컨트롤러의 인덱스 작업을 가리키고 있습니다. 내 게시물의 view.ctp는 하나의 블로그 항목을 보여 주므로이보기 내에서 등급 시스템에 추가하고 싶습니다. 그리고 평가를 사용하려면 헬퍼에게 다음과 같이 요청해야합니다.

echo $rfRating->ratingBar($ratingInfo); 

게시물의 view.ctp 파일에서 이것을 수행합니다. 그것은 불평합니다. 내가 var $helpers = array('blah')와 어지럽 혔습 시도했지만 작동하지 않았다, 나는 단지 내가 생각하는 post_controller에 등급 컨트롤러를 병합 결국. 다른 물건에도 등급 시스템을 사용할 수 있습니다.

그래서 ... 나는 무엇을해야할지 모르겠다. 사실 그것은 거짓말입니다. 나는이 문제를 어떻게 해결할 것인지 두 가지 생각합니다. 그러나 나는 나의 Google 기술이 실패한 비평과 다른 해결책이 필요하다.

  1. 전체 등급 시스템을 app_controller.php에 대신 구현해야합니까? 모든 컨트롤러가이 등급 시스템을 상속 받습니까? 내 사용자 등록에 등급 시스템이 필요하다고 생각하지 않기 때문에 바보 같이 들립니다.

  2. 나는 다른 해결책을 찾아 보았습니다. requestAction('blab'). 이게 내가 할 수있는 일은 ... 컨트롤러 내에서 다른 컨트롤러를 호출하는 것입니다. 그러나 이것은 성능을 떨어 뜨리기 때문에 싫은 냄새가 난다. 그리고 나는이 하하를 어떻게하는지, 그것이 작동하는지 정확하게 알지 못합니다. 등급 컨트롤러라고하지만 헬퍼 기능은 무엇입니까? 아마 var $ helpers = array ('rating')을 추가하면 그것을 인식 할 것입니다.

어쨌든이 시간을내어 읽어 주셔서 감사합니다. 저를 올바른 방향으로 가르쳐주십시오.

답변

2

posts_controller를 ratings_controller 확장하십시오.

이렇게하면 등급 모듈이 필요한 페이지를 선택적으로 결정할 수 있습니다.

+0

와우, 감사합니다. 그게 ... 라인을 따라 뭔가, 내가 왜 그렇게 생각하지 않았어. 고맙습니다. – mythicalprogrammer

관련 문제