【发布时间】:2015-09-13 10:13:32
【问题描述】:
我是 CodeIgniter 的新手,我刚刚浏览了他们的一些用户指南,以帮助我了解如何使用多个控制器。
我已经知道如何使用他们的一个示例来加载多个页面。这是我的默认控制器,名为 Site.php:
class Site extends CI_Controller {
public function index($page = 'home') {
if ( ! file_exists(APPPATH.'/views/'.$page.'.php')) {
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page);
$this->load->view('header', $data);
$this->load->view($page, $data);
$this->load->view('footer', $data);
}
}
这一切都很好用我的 routes.php:
$route['default_controller'] = 'site';
$route['(:any)'] = 'site/index/$1';
例如,当我转到 localhost/website/index.php/about 时,我有一些视图可以正确加载。
现在,进一步了解控制器和 URI 路由。我创建了一个新控制器,application/controllers/MyController.php,它的编码如下:
class MyController extends CI_Controller {
public function index() {
$this->load->view('header');
$this->load->view('my_controller');
$this->load->view('footer');
}
}
问题是,我不知道如何访问此页面。
我知道默认的 URI 模式是 example.com/class/function/id/,但我已经尝试过 localhost/website/mycontroller,但它不起作用。 Apache 返回 404。我已经尝试了很多操作,甚至像输入 localhost/website/index.php/mycontroller 一样愚蠢,但当然这不起作用。
使用多个控制器的正确方法是什么?我在这里做错了什么?请协助我学习,谢谢!
(另外,这是我在 StackOverflow 上的第一个正确问题,如果我做错了什么或格式不正确,请告诉我!)
【问题讨论】:
-
$route['(:any)'] = 'site/index/$1';从您的 routes.php 中删除它,一切都会正常。
标签: php codeigniter controller