user3129131
user3129131

Reputation: 79

CodeIgniter Routing - 404 error

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?

Upvotes: 4

Views: 3963

Answers (2)

Nehil Mistry
Nehil Mistry

Reputation: 1109

$route['admin/users/(:any)'] = 'admin/users/view/$1';
$route['admin/users'] = 'admin/users';

$route['admin/users/login'] = 'admin/users/login';

$route['admin/edit/(:any)'] = 'admin/edit/view/$1';

$route['admin'] = 'admin/users/login';

Try this You might get results!

Upvotes: 0

Damien Pirsy
Damien Pirsy

Reputation: 25445

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.

Upvotes: 2

Related Questions