路由在localhost中工作,但不在codeigniter项目的在线主机中工作

时间:2015-09-29 07:04:05

标签: codeigniter

我是CI新手,请帮我解决。

路由在localhost中工作,但在codeigniter项目中的在线主机中不起作用

的config.php

$root=(isset($_SERVER['HTTPS']) ? "https://" : "http://").$_SERVER['HTTP_HOST'];
$root.= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
$config['base_url'] = $root;

$config['index_page'] = 'index.php';

routes.php文件

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['test'] = 'test';

控制器 - 的 test.php的

class test extends CI_Controller {
    public function index()
    {
        echo "Hi! This is at test";
    }
}

问题

http://localhost/CodeIgniter-3.0.0/index.php/test -----作品

http://codeignitertests.site50.net/index.php/test ------不工作

1 个答案:

答案 0 :(得分:1)

制作控制器时,类和文件名必须有首字母大写

  

test.php的

<?php

class Test extends CI_Controller {
    public function index() {
       echo "Working";
    }
}

正如以前的版本没有问题,但现在在CI3版本中,您必须首字母包含所有类和文件名大写。

例如,在调用模型时也是如此。

  

Test_model.php

<?php

class Test_model extends CI_Model {
    public function get() {
       // some db stuff here.
    }
}

将模型加载到控制器

<?php

class Test extends CI_Controller {

    public function __construct() {
       parent::__construct();
       $this->load->model('test_model');
    }

    public function index() {

       $data['test_results'] = $this->test_model->get();
       $this->load->view('test_page', $data);
    }
}

使用您的base_url,如果需要,您可以留空,并且应该自动提取您的网址

$config['base_url'] = '';