CodeIgniterdomain/controller_name/method-name/method_parameters在你的第一个 url 中读取一个 url,http://myapp/locations/1第一部分 (myapp) 是你的域名,第二部分 (locations) 是你的控制器名称,第三部分应该是控制器的方法名称,在这种情况下你已经通过了1,显然没有这样的方法名称,所以它显示错误。
如果您domain/controller_name像在此 url 中所做的那样通过http://myapp/locations,则 CodeIgniter 将第一部分读取为 thedomain_name和第二部分controller_name,当 url 中没有第三部分时,CodeIgniterindex默认调用方法/函数,因此您的第二个 url 正在工作.
在您拥有的最后一个网址中http://myapp/locations/main/locations/1,它被读作
myapp-域名
locations-控制器名称
main-方法/函数名称
其余的都作为main控制器的参数传递。所以请记住,url 的第三部分是method/function名称,如果没有给出第三部分,则默认CodeIgniter调用该index方法,在这种情况下,您必须在该控制器中声明一个默认index方法/函数,否则会发生错误。