I'm developping a website using CI and today I'm facing a problem in the admin part.
I've an admin and I can manage users
the structure of my application is:
controllers/admin/users.php
in users.php I've some functions: index(), view($id), login(), edit($id)
views/admin/users/index.php
views/admin/users/view.php
views/admin/users/login.php
views/admin/users/edit.php
to access the login page the url is:
www.mysite.com/admin/login
to access the list of users the url is:
www.mysite.com/admin/users
to view a specific user (id=5)
the url is:
www.mysite.com/admin/users/5
everything is working well except for the edit function, I got an url when I call www.mysite.com/admin/edit/5
here are my routing rules:
$route['admin/users/(:any)'] = 'admin/users/view/$1';
$route['admin/users'] = 'admin/users';
$route['admin/users/login'] = 'admin/users/login';
$route['admin/users/edit/(:num)'] = 'admin/users/edit/$1';
$route['admin'] = 'admin/users/login';
I miss something? what is wrong?
Try putting it higher in the sequence, since route are matched top to bottom:
$route['admin'] = 'admin/users/login';
$route['admin/users'] = 'admin/users';
$route['admin/users/login'] = 'admin/users/login';
$route['admin/users/edit/(:num)'] = 'admin/users/edit/$1';
$route['admin/users/(:any)'] = 'admin/users/view/$1';
That :any
might be catching too much and interfere, I'd leave it as a last catch-all route for all those non specified.