我刚刚继承了一个CI项目,并试图弄清楚一些事情。我面临的一个问题是:
鉴于这两个链接:
/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/
被转换为sales_model
PHP对象?
答案 0 :(得分:2)
您是否检查过controller ...中的sales.php文件,该文件可能包含“send_receipt”,“run”方法。可能在那些控制器中调用模型函数..
答案 1 :(得分: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
}
}