【问题标题】:Codeigniter parametersCodeigniter 参数
【发布时间】:2012-10-20 23:42:41
【问题描述】:
我已阅读 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 中确实有其他功能。
如何让第一行工作以清理 URL?
提前致谢,
艾伦
【问题讨论】:
标签:
codeigniter
codeigniter-2
codeigniter-url
codeigniter-routing
【解决方案1】:
CodeIgniter 将 url 读取为 domain/controller_name/method-name/method_parameters 并且在您的第一个 url 中 http://myapp/locations/1 第一部分 (myapp) 是您的域名,第二部分 (locations) 是您的控制器名称,第三部分应该是控制器的方法名称在这种情况下,您已经传递了1,显然没有这样的方法名称,所以它显示错误。
如果您像在此 url http://myapp/locations 中一样传递 domain/controller_name,则 CodeIgniter 将第一部分读取为 domain_name,将第二部分读取为 controller_name,当 url 中没有第三部分时CodeIgniter 默认调用 index 方法/函数,因此您的第二个 url 可以正常工作。
在您的最后一个网址中,您有http://myapp/locations/main/locations/1,它被读作
myapp-域名
locations-控制器名称
main-方法/函数名
其余的都作为main控制器的参数传递。所以请记住,url 的第三部分是 method/function 名称,如果没有给出第三部分,则 CodeIgniter 默认调用 index 方法,在这种情况下,您必须声明默认的 index 方法/函数在那个控制器中,否则会发生错误。