Я пытаюсь вызвать функцию в одной из своих моделей, но я хотел бы сделать это, не пройдя через контроллер, возможно ли это? код приведен ниже не работает, я получаю 404 Not Found
код CodeIgniter с ajax
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;
}
}
Этот подход не подходит в подходе CI MVC. Это связано с тем, что свойство url AJAX пытается достичь 'example.com/имя_контроллера/method_name/param'. По соображениям безопасности невозможно достичь другого кода приложения через веб-браузер. – Tpojka
«В качестве альтернативы я мог бы создать контроллер, вызывающий метод в модели, но я хотел бы знать, возможен ли этот ярлык». Это то, что вам нужно/нужно делать. Модель не (или не должна быть) доступна из браузера (AJAX или нет), то есть ваш уровень данных. –