2016-11-02 3 views
0

저는 CI 프로젝트를 상속 받았으며 몇 가지 사항을 파악하려고합니다.CodeIgniter에서 모델 메서드는 어떻게 호출됩니까?

을 감안할 때 이러한 2 링크 : 내가 직면하고있어 문제 중 하나는 다음과 같다

/esales/index.php/sales/send_receipt 

/esales/index.php/sales/run 

내가 CI 프로젝트를 통해보고 된이 파일주의 : esales/application/models/sale.php 내부

을, 2 있었다 주로 실행 된 기능 :

class sale_model extends CI_Model{ 
    public function get_sales_data(){ /* gets sales data */} 
    public function send_invoice(){ /* sends order receipt */} 

그리고 아이디어는 그 사용자가 /index.php/sales/run, 기능을 클릭하면 get_sales_data()/index.php/sales/send_receipt을 클릭하면 send_invoice()이 실행됩니다.

CodeIgniter는 링크를 모델의 기본 메소드에 어떻게 연결합니까? 특히 /sales/sales_model PHP 개체로 번역 된 것을 CI가 어떻게 알습니까?

+0

당신은 (https://codeigniter.com/userguide3/) 프레임 워크의 [수동]을 읽어야 ...이 당신이 그것을 얻을 수없는 경우에 당신은 실패 할 수밖에하고, 정말 기본적인 것입니다 혼자서. – Narf

+0

은 아무도 아직 라우터를 언급하지 않았다는 점에 충격을 받았습니다. application/config/routes는 튜토리얼을 즉시 실행하고 실제로 읽지는 않습니다. 실제로 이해하므로 실제로 이해할 수 있습니다. http://www.codeigniter.com/user_guide/tutorial/index.html – cartalot

답변

2

컨트롤러에서 "send_receipt", "run"메소드가 포함될 수있는 sales.php 파일을 확인 했습니까? 아마도 해당 모델에서 함수가 호출됩니다.

0

컨트롤러의 명령없이 모델 및 뷰에 액세스 할 수 없습니다. 그것이 우리가 MVC Security라고 부르는 것입니다.

귀하의 get_sales_datasend_invoice은 컨트롤러가 호출하지 않는 한 자동으로/독립적으로 호출되지 않습니다.

컨트롤러에 이러한 종류의 코드가 있는지 확인하십시오.

class Sales extends CI_Controller { 

    public function index() { 

    } 

    public function run() 
    { 
     $this->load->model('sale_model'); #load model 
     $this->sale_model->get_sales_data(); # access data 
    } 

    public function send_receipt() 
    { 
     $this->load->model('sale_model'); # load model 
     $this->sale_model->send_invoice(); # access data 
    } 

} 
+0

도움이 될 경우 ** [ACCEPT **로 표기하십시오.] (http://meta.stackexchange.com/questions/5234/how-does 대답하는 일). 따라서 [** VOTE UP **가 태그 수를 이끌 것입니다.] (http://meta.stackexchange.com/questions/173399/how-to-upvote-on-stack-overflow) –

관련 문제