【发布时间】:2016-09-27 14:28:06
【问题描述】:
我试图在我的一个模型中调用一个函数,但我想在不通过控制器的情况下这样做,这可能吗?
下面提供的代码不起作用,我得到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:
好的,现在来下一个问题。对于我的某些控制器,我正在使用自定义 Helper,因为我希望它们在多个控制器中可用。通过 PHP 调用它们时效果很好,但是我可以为上面提到的 get_cash_player 控制器(以及在 cmets 中)创建一个并通过 Ajax 调用它吗?
我试过了,但还是找不到:
if(!function_exists('get_cash_player')){
function get_cash_player(){
$ci=& get_instance();
$cash = $ci->usersModel->get_cash_player();
return $cash;
}
}
【问题讨论】:
-
这种快捷方式在 CI MVC 方法中是不可能的。这是因为 AJAX 的 url 属性试图达到
example.com/controller_name/method_name/param。出于安全原因,无法通过网络浏览器访问其他应用程序代码。 -
“或者我可以创建一个控制器来调用模型中的方法,但我想知道这个快捷方式是否可行。”这就是你必须/应该做的。模型不能(或不应该)从浏览器(AJAX 与否)访问,即您的数据层。
标签: php ajax codeigniter