CodeIgniter Forums
Confused about Routes.. - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23)
+--- Thread: Confused about Routes.. (/showthread.php?tid=29648)



Confused about Routes.. - El Forum - 04-16-2010

[eluser]myjeep_2003[/eluser]
Her is my confusion.. any help will be appreciated..

1. my default in route.php is $route['default_controller'] = 'home/main'; (This is the home page and needs no authintication.


2. i have a menu link to my content and the uri is /mycontent

3. On mycontent controller i have the following.....

function index()
{
# // Check if user is logged in or not
if ($this->authlib->check())

{ $data = "blah......"
$this->load->view('AddContent', $data);
}

else
{
$route['home'] = "home/main";
}
}

4. It never loads the AddContent View.. it always goes to Home/Main Controller.

5. If I change the default route to mycontent then it works....


Confused about Routes.. - El Forum - 04-16-2010

[eluser]roj[/eluser]
Hi,

the quick answer is that routes are loaded before the controller and determine which controller the URI info should be sent to.

What is it you are trying to achieve?


Confused about Routes.. - El Forum - 04-16-2010

[eluser]tkrop[/eluser]
This: $route[‘default_controller’] = ‘home/main’; is a route which maps a URI (yoursite.com/)`default_controller` to a controller and action `home/main`. Which is a bit strange isn't it?

Go like this:

$route['your_url'] (refers to http://www.yoursite.com/your_url)
$route['your_url/(:any)'] (refers to http://www.yoursite.com/your_url/anystringhere)
$route['default_controller'] (refers to http://www.yoursite.com, this is a reserved name so that you don't have to fill in an empty url like: $route[''])

you should 'map' the routes above to a Controller action (function) (in your case 'MyContent' and 'index'):

$route['default_controller'] = 'mycontent/index'; (you can optionally leave index away, because it is default)



NOTE: Codeigniter has some built-in URI mapping so that every url automatically maps to controllers / actions. This works automatically...

It works like this: yoursite.com/controller/[action/parameters*]
this automatically maps to Controller->Action($parameters)

you can play around with that because:
yoursite.com/controller -> maps to Controller->index()
yoursite.com/controller/action/p1/p2/p3/p4 -> maps to Controller->action($p1,$p2,$p3,$p4)