내 cakephp 애플리케이션에서 helper.php에서 컨트롤러를 사용해야합니다. 작동하지 않습니다. 어느 누구도 작은 구문으로 설명 할 수 있습니까?도우미 컨트롤러 사용
답변
도우미가 컨트롤러에 액세스하도록 설계되지 않았습니다. 컨트롤러에 액세스하려는 경우 애플리케이션 디자인을 다시 생각해 볼 수 있습니다.
나는 실제로 이와 동일한 문제가 발생했습니다. CakePHP 1.1 응용 프로그램에서 컨트롤러의 이름을 뷰의 매개 변수로 전달하여 컨트롤러에 액세스했습니다. 1.2에서 작동하도록 코드를 업그레이드하려고 시도한 후에 이것이 잘못된 설계임을 깨달았습니다. 그것은 CakePHP와 MVC에 대한 나의 첫 경험이었습니다. 그래서 저는 이것을 교훈으로 삼아 초청했습니다.
MVC는 올바른 위치 (컨트롤러, 모델 또는 뷰)에 기능을 배치하기 위해 일부 초기 설계가 필요합니다.
를 사용하고 CakePHP의에서 일하고 ... 같은 이전 게시물을 :(이있다 realiced 모달에 액세스 하시겠습니까? *** –
그 MVC (추신 : 당신은 또한 irc.freenode.net에 #cakephp 채널을 시도 할 수 있습니다).
도우미에서 컨트롤러를 사용하지 말고 컨트롤러에서 도우미를 사용하십시오.
왜 처음에는 그렇게하지 않을 것입니까?
이 읽기 :
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
이난 정말 어떻게 생각 나 대신 무엇을 말하는 말해 수 코드를 생각 싫어 ... 어쨌든 ... 여기를로드하기위한 예입니다 컨트롤러는 페이지를 렌더링하고 도우미 내부의 모든 컨트롤러를로드 할 수 있습니다.
<?Php
class HelperNameHelper extends AppHelper{
private $controller;
public function __construct(View $view, $settings = array()) {
parent::__construct($view, $settings);
$this->controller=$this->loadController();
}
protected function loadController($name=null){
if (is_null($name)) $name=$this->params['controller'];
$className = ucfirst($name) . 'Controller';
list($plugin, $className) = pluginSplit($className, true);
App::import('Controller', $name);
$cont = new $className;
$cont->constructClasses();
$cont->request=$this->request;
return $cont;
}
}
편집 :? 바로이 2.2.3
+1에 대한 +1 코드가 무엇을 해야할지를 대신 생각하는 법을 말해 줄 수 있다고 생각하는 것을 정말 싫어합니다. *** 규칙은 목적을 위해 존재한다는 것을 항상 지적해야합니다. 당신이하고있는 일과 이해 관계가 무엇인지를 절대적으로 이해하고 있다면, 이것은 더 큰 이익을 위해 컨벤션을 조작하는 좋은 예입니다. 'App :: import()'는 그들이하는 일을 이해하는 개발자를 위해 존재합니다. 다른 사람들은 아마 옹호했다. 신생아가 부작용을 이해하지 않고 방법을 악용하는 것을 막기위한 협약. – Fr0zenFyr
규칙이 깨질 수 있습니다. P –
- 1. 컨트롤러 내에서 도우미 메서드 사용
- 2. 컨트롤러 내부의 CodeIgniter 도우미
- 3. 컨트롤러 내부에서 link_to_remote 사용
- 4. 다중 레벨 탭 인터페이스에 대한 컨트롤러, 동작 도우미 또는보기 도우미
- 5. 도우미 모듈에서 컨트롤러 메서드를 호출하기위한 지침?
- 6. 젠드 프레임 워크 컨트롤러 액션 도우미
- 7. 보기 페이지, 컨트롤러 및 도우미 사용하기
- 8. 사용 with_options 내가이 모양이 도우미
- 9. 문자열을 반환하는 Haml 도우미 사용
- 10. 수퍼바이저의 내비게이션 컨트롤러 사용
- 11. 도우미?
- 12. WebMatrix 용 루프 도우미 사용 자습서
- 13. 데스크톱 응용 프로그램에서 WebMatrix 도우미 사용
- 14. ActionRecord 쿼리 내에서 Rails 도우미 메서드 사용?
- 15. Windows 용 Qt SDK : 도우미 사용 방법
- 16. 올바른 Android 의도 도우미 클래스 사용?
- 17. 별도의 도우미 클래스에서 컨트롤러 외부의 HttpContext 세션에 액세스하는 모범 사례
- 18. 젠드 컨트롤러 액션 도우미 문제가 도우미를 추가 할 수 없습니다.
- 19. rspec : render_views를 사용하여 컨트롤러 사양에서 템플릿의 도우미 메서드 호출을 스텁합니다.
- 20. 레일 : 컨트롤러 메서드 또는 인스턴스 변수 도우미 내부
- 21. ASP.NET MVC : 컨트롤러 메서드에서 사용자 지정 HTML 도우미 호출하는 방법?
- 22. 사용자 HTML 도우미 목록을 채우는 도우미
- 23. ASP.net MVC 컨트롤러 - 생성자 사용
- 24. 컨트롤러 외부에서 bindData 메서드 사용
- 25. 내가 도우미 내 도우미 함수를 정의
- 26. 레일 URL 도우미
- 27. ASP.NET MVC의 애플리케이션 도우미
- 28. LINK_TO 도우미 나
- 29. MVC 템플릿 도우미 - DropDown
- 30. HTML을 도우미 CakePHP의
당신이 PLZ는 그 도우미를 해결 내게됩니다 말해 버전 1.1 또는 1.2 –