2011-10-07 69 views
0

我想为我正在处理的电子商务项目使用codeigniter,但我认为我需要一些自定义路由,但我不确定这是否可行。我希望能够利用这个网址:代码中的自定义路由

http://myecommsite.com/store/mens

默认情况下,在CI这将致电男子在店里类的函数。我真正想要的是在商店类中调用泛型函数,并将“男士”作为参数。原因是这个网站需要有一个男装,女装和儿童款。

这可能吗?

而且当我再往下行......即

http://myecommsite.com/store/mens/category1/category2

如何让我这个词的工作?

回答

3

application/config/routes.php

喜欢的东西简单地定义一个定制route,为您的网址http://myecommsite.com/store/mens

$route['store/(:any)'] = "store/customfunction/$1"; 

这样,所有的请求都会被映射到你的“customfunction”的方法,这需要参数“男装”

您可能还想要优先考虑__remap()函数,该函数覆盖方法(与覆盖整个URI的路由相反)。从m一个:

如果你的控制器包含一个名为__remap()的函数,它总是会调用 而不管你的URI包含什么。它覆盖了其中URI确定调用哪个函数的正常行为 ,允许您定义自己的函数路由规则。

因此,您可以在控制器存储中使用__remap()函数,并且任何内容都将重定向到该函数。方法名称之后的任何段都将作为第二个参数传递给__remap(),并且您可以使用此数组与call_user_func_array()
这可能适用于您的第二个URI示例。可能是这样的

function __remap('mymethod',$array = array()) 
{ 
    return call_user_func_array('mymethod',$array); 
} 

,并在你的方法“的MyMethod”你选择的数组元素,做你需要做的

什么