2012-12-25 4 views
-2

컨트롤러에서 모델의 메서드를 호출하는 방법을 알고 있지만 모델에서 컨트롤러의 메서드를 호출하는 방법은 궁금합니다.컨트롤러에서 모델에서 methode를 호출하는 방법

$this->load->model('dataOperateModel'); 
$this->dataOperateModel->saveData($formtype); 

이것은 모델에서 메소드를로드합니다. 그러나 저는 컨트롤러에 대한 모델을 아무도 보지 못했습니다. 이것을 처리하는 쉬운 방법이 있습니까?

+0

, 모델 층의 구조는 프리젠 테이션 계층의 완전히 인식하지 못하는 것입니다. 당신이하려는 것은 MVC에서 영감을 얻은 패턴의 핵심 [아이디어] (http://en.wikipedia.org/wiki/Separation_of_concerns)을 위반하는 것입니다. –

답변

2

모델에서 컨트롤러 작업을 호출하는 것은 아닙니다. 이는 데이터 분리 지점을 무력화시킵니다. 행동을 부르는 것이 해결할 수있는 문제에보다 구체적으로 질문을 변경하는 것이 좋습니다.

질문에 답하십시오. 컨트롤러가 Posts라고 가정합니다.

//Import controller 
App::import('Controller', 'Posts'); 
//Instantiation 
$Posts = new PostsController; 
//Load model, components... 
$Posts->constructClasses(); 
//Call a method on the controller. 
$Posts->index(); 
+0

그래도 위의 답변은, 당신이 조언을하지 않는 것이 좋습니다. 너? – kiriappa

+0

@kiriappa 사실 위 코드는 Codeigniter가 아니라 CakePHP에서 작동합니다. 나는 당신이하고 싶은 일과 관련된 더 직접적인 질문을하는 것이 좋을 것이다. 컨트롤러에 어떻게 행동을 부르는 지 간단히 물어 보라. 그러면 사람들이 MVC 디자인을 따르는 솔루션에 대해 조언 할 수 있습니다. – cgTag

+0

예, 이해합니다. 고마워요. – kiriappa

1

장이하십시오 : 당신이 기록 된 것은 MVC에서 영감을 디자인 패턴도 vaguest 유사성이 있다면

$this->load->model('dataOperateModel','dataOperate'); 
$this->dataOperate->saveData($formtype); 
관련 문제