我想将 codeigniter 用于我正在从事的电子商务项目,但我认为我需要一些自定义路由,并且我不确定这是否可行。我希望能够使用这个网址:
http://myecommsite.com/store/mens http://myecommsite.com/store/mens
默认情况下,在 CI 中,这将调用 store 类中的 mens 函数。我真正想要的是它调用商店类中的通用函数并输入“mens”作为参数。原因是该网站需要有男士、女士和儿童部分。
这可能吗?
另外,当我进一步了解时......即
http://myecommsite.com/store/mens/category1/category2 http://myecommsite.com/store/mens/category1/category2
我如何让 Ci 与此一起工作?
简单定义一个自定义route http://codeigniter.com/user_guide/general/routing.html in application/config/routes.php
比如你的网址http://myecommsite.com/store/mens http://myecommsite.com/store/mens
$route['store/(:any)'] = "store/customfunction/$1";
这样,所有请求都将映射到您的“customfunction”方法,该方法采用参数“mens”
您可能还想考虑__重映射() http://codeigniter.com/user_guide/general/controllers.html函数,它覆盖方法(与覆盖整个 URI 的路由相反)引用手册:
如果您的控制器包含名为 __remap() 的函数,它将始终
无论您的 URI 包含什么内容都会被调用。它覆盖了
URI 确定调用哪个函数的正常行为,
允许您定义自己的函数路由规则。
因此,您可以在控制器存储中使用 __remap() 函数,任何内容都将被重定向到该函数。方法名称后面的任何段都会作为第二个参数传递到 __remap() 中,您可以将此数组与call_user_func_array() http://php.net/manual/en/function.call-user-func-array.php.
这对于您的第二个 URI 示例可能会派上用场。可能是这样的
function __remap('mymethod',$array = array())
{
return call_user_func_array('mymethod',$array);
}
在您的方法“mymethod”中,您选择数组元素并执行您需要执行的操作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)