CodeIgniter Forums
CI finding method in other controllers but not my News one - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forum-20.html)
+--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forum-23.html)
+--- Thread: CI finding method in other controllers but not my News one (/thread-55005.html)



CI finding method in other controllers but not my News one - El Forum - 10-04-2012

[eluser]php_princess[/eluser]
If I put any method in my News controller other than index(), the site won't find it through the URL. No other controller seems to have this problem. I'll demonstrate:

This is temp.php and it displays "got here" on the page when I go to "http://www.mydomainhere.com/temp/rate":
Code:
class Temp extends MY_Controller {

   public function rate() { print "got here"; }
}


This is news.php and I get a 404 error when I go to "http://www.mydomainhere.com/news/rate":
Code:
class News extends MY_Controller {

public function rate() { print "got here"; }

public function index() { print "we're in index"; }

}


If I go to "http://www.mydomainhere.com/news" "we're in index" is displayed.

As a test, I changed News so it is extending CI_Controller directly. Nothing changed.


Any ideas on what could be going on?


CI finding method in other controllers but not my News one - El Forum - 10-04-2012

[eluser]Rolly1971[/eluser]
you could try putting a entry in the config/routes.php file like this and see if it help:

Code:
$route['news/rate'] = "news/rate";

i find it weird too that some times the default routing code does not work quite right, but when i put a entry in the routes.php file it works proper.

but sometimes it works without setting a route entry.


CI finding method in other controllers but not my News one - El Forum - 10-05-2012

[eluser]php_princess[/eluser]
Ah, ha! Here's what's wrong. I looked in routes and saw this:

Code:
$route['news/create'] = 'news/create';
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';

I deleted all that and, vola, my method started working.

I forgot that I put that stuff in there when I was doing the CI tutorials. Thanks Rolly! I'd have never thought to look there had you not mentioned it.