我已经阅读了URI参数用户指南,但仍然有一个问题:
http://codeigniter.com/user_guide/general/routing.html
具有以下内容: {http:// myapp / locations / 1}我收到404错误... {http:// myapp / locations}适当地执行主控制器中的index()函数 {http:// myapp / locations / main / locations / 1}有效,值正确传递给index($ var)
我在Main中有其他功能。
如何才能让第一行工作才能清理网址?
提前致谢, 艾伦
答案 0 :(得分:1)
CodeIgniter
将网址读取为domain/controller_name/method-name/method_parameters
并在您的第一个网址http://myapp/locations/1
中,第一部分(myapp)是您的域名,第二部分(位置)是您的控制器名称,第三部分是部分应该是控制器的方法名称,在这种情况下你已经通过1
,显然没有这样的方法名称,所以它显示错误。
如果您在此网址domain/controller_name
中传递了http://myapp/locations
,那么CodeIgniter会将第一部分读作domain_name
,将第二部分读作controller_name
并在那里在url中没有第三部分,然后CodeIgniter默认调用index
方法/函数,所以你的第二个url正在工作。
在您的上一个网址中,您有http://myapp/locations/main/locations/1
,并且已被视为
myapp
- 域名
locations
- 控制器名称
main
- 方法/功能名称
和其余的全部作为main
控制器的参数传递。所以请记住,网址的第三部分是method/function
名称,如果没有给出第三部分,则CodeIgniter
默认调用index
方法,在这种情况下,您必须声明默认值
index
方法/功能,否则将发生错误。