I'm new to CodeIgniter and I've just gone through some of their user guide to help me understand how to do multiple controllers.
I have figured out how to load multiple pages using one of their examples. This is my default controller, called 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);
}
}
This all works well and good with my routes.php:
$route['default_controller'] = 'site';
$route['(:any)'] = 'site/index/$1';
I have a few views that do load correctly when I go to localhost/website/index.php/about
, for example.
Now, to further learn about controllers and URI routing. I created a new controller, application/controllers/MyController.php
and it is coded as such:
class MyController extends CI_Controller {
public function index() {
$this->load->view('header');
$this->load->view('my_controller');
$this->load->view('footer');
}
}
The thing is, I don't know how to access this page.
I understand that the default URI pattern is example.com/class/function/id/
but I have tried localhost/website/mycontroller
and it doesn't work. Apache returns 404. I've tried many manipulations of this, even going as stupid as typing localhost/website/index.php/mycontroller
but of course that doesn't work.
What is the correct way to use multiple controllers? What have I done wrong here? Please assist me in my learning, thank you!
(Also, this is my first proper question on StackOverflow, if I've done anything wrong or formatted something incorrectly, please let me know!)