我只是使用Codeigniter作为框架为我的酒店制作一个简单的房间预订系统。在我的localhost中,控制器及其方法按预期工作,但是当我将文件上传到我的测试服务器时,我的一个控制器变得无法访问。它既不显示加载的视图页面也不显示错误。我试过像www.mydomain.com/testing/index.php/room_booking和www.mydomain.com/testing/index.php/room_booking/post_action这样的网址,但没有显示任何内容然后我尝试使用die( '我的代码没有被执行'),但它也没有打印出来。所以它让我发疯了,我过了一整天。
我的控制器如下:
header("Access-Control-Allow-Origin: *");
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class room_booking extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library('session');
$this->load->model('dbmodel');
$this->load->model('api_model');
$this->load->model('dashboard_model');
$this->load->model('booking_room');
$this->load->helper('url');
$this->load->helper(array('form', 'url'));
$this->load->library("pagination");
}
public function index() {
$this->load->view('template/header');
$this->load->view('template/imageDiv');
$this->load->view('template/reservation_template');
//$this->load->view('login/test');
$this->load->view('template/footer');
}
function post_action() {
$this->load->helper('availableroom');
die('here i used die function for test');
if ($_POST) {
$data['abc'] = array(
'checkin' => $_POST['checkin'],
'checkout' => $_POST['checkout'],
'adult' => $_POST['adult'],
'child' => $_POST['child'],
'hotelId' => $_POST['hotelId'],
'title' => $_POST['title']
);
$this->session->set_userdata($data['abc']);
$hotel = $_POST['hotelId']; // form top it got hotel name
$hotels = $this->dashboard_model->get_hotel_id($hotel);
if (!empty($hotels)) {
foreach ($hotels as $hotelData) {
$hotelId = $hotelData->id;
}
} else {
$hotelId = $_POST['hotelId'];
}
$data['query'] = $this->dashboard_model->booking_room($hotelId);
$data['json'] = json_encode($data['query']);
$this->load->view('ReservationInformation/room_booking', $data);
} else {
$this->load->view('ReservationInformation/room_booking_empty_view');
}
}
}
我在这里犯了什么错吗?在post_action方法中,我从ajax调用传递了一个值。我怎样才能在服务器中解决它?
答案 0 :(得分:0)
控制器类名称应以Uppercase letter
开头,因此room_booking
应为Room_booking
在此处查看备注:https://ellislab.com/codeigniter/user-guide/general/controllers.html#what
答案 1 :(得分:0)
您的代码看起来是正确的。我想你可能忘了设置你的基本网址:
// application/config/config.php
$config['base_url'] = 'www.mydomain.com/testing';
这只是一个猜测(由于特权,没有将其作为评论发布)。