使用ajax调用CodeIgniter模型

时间:2016-05-29 19:37:39

标签: php ajax codeigniter

我试图在我的某个模型中调用一个函数但是我想这样做而不通过控制器,这可能吗? 下面提供的代码不起作用,我得到404 Not Found

使用Javascript:

$.ajax({
    type: "POST",
    url: "/myApplication/usersModel/get_cash_player",
    success: function(result){
       alert("ok");
    }
});

我的模型(位于usersModel.php中):

public function get_cash_player(){                
   $currentUserID = $this->usersModel->get_user_id();
   $query = $this->db
       ->select('cash')
       ->from('users')
       ->where('id_player', $currentUserID)
       ->get();
   return $query->row('cash');      
}

或者我可以创建一个控制器来调用模型中的方法,但我想知道这个快捷方式是否可行。

更新1: 好的,现在是下一个问题。对于我的一些控制器,我使用自定义助手,因为我希望它们可以在多个控制器中使用。通过PHP调用它们时工作正常,但是我可以为上面提到的get_cash_player控制器创建一个(并在注释中)并通过Ajax调用它吗?

我试过了,但仍未找到:

if(!function_exists('get_cash_player')){
    function get_cash_player(){  
        $ci=& get_instance();
        $cash = $ci->usersModel->get_cash_player();
        return $cash;
    }
}

2 个答案:

答案 0 :(得分:1)

直接调用Model是不可能的,Controller总是处理来往View和Model的进程。这是正确的Codeiginter MVC方法,

workflow 来源:https://www.codeigniter.com/user_guide/overview/appflow.html

此链接也可能对您有所帮助 https://www.codeigniter.com/user_guide/overview/mvc.html

但是,您可以这样做:使用您的ajax函数调用控制器函数来传递数据。控制器将使用模型处理该过程,并将数据返回给ajax函数。

答案 1 :(得分:0)

没有。这不可能。所有传入服务器请求都路由到控制器。