2016-11-02 2 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 подключает ссылку к собственному методу в модели? В частности, как CI знает, что /sales/ перевести на объект PHP sales_model?

+0

Вы должны прочитать [руководство] фреймворка (https://codeigniter.com/userguide3/) ... Это действительно основная вещь, вы обречены на неудачу, если вы не можете добраться до него самостоятельно. – Narf

+0

шокирован тем, что никто еще не упомянул маршрутизатор. application/config/routes, иначе учебник сразу же - и не просто прочитайте его - на самом деле работайте через него, чтобы вы действительно поняли. http://www.codeigniter.com/user_guide/tutorial/index.html – cartalot

ответ

2

Вы проверили файл sales.php в контроллере, который может содержать методы «send_receipt», «run». вероятно, функции модели вызываются в этом контроллере.

0

Модель и вид не могут быть доступны без команды контроллера. Это то, что мы назвали MVC Security.

Ваши get_sales_data и send_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 -accepting-ан-ответ-работы). Следовательно, [** VOTE UP ** приведет мое количество TAG] (http://meta.stackexchange.com/questions/173399/how-to-upvote-on-stack-overflow) –

Смежные вопросы