CodeIgniter URI路由:从URL中删除方法名称索引

时间:2016-11-21 16:19:20

标签: codeigniter url routing uri url-routing

我正在使用CodeIgniter(V:2.2.6),我有一个简单的类User,其中包含一些基本方法,如createupdateedit,{ {1}}和delete。对于index函数,我使用参数index(这是第二个URI段)以显示有关该用户的一些信息。因此默认URL如下所示:

$user

显示有关用户'john'的一些信息。

现在,我想从网址中删除术语“索引”,以便它看起来像:

/user/index/john

为此,我在routes.php中添加了以下规则。

/user/john

它可以达到目的,但它会阻止访问$route['user/(:any)'] = "user/index/$1"; 等其他功能并自动进入/user/create。要解决此问题,除了手动添加路由规则(如

)之外,我看不到任何其他方式
/user/index

对于$route['user/create'] = "user/create"; 类的每个方法,这根本不是很酷。那么,在当前情况下,请任何人建议我更好的路由方式吗?

以下是我的代码:

User

注意:我已经通过CodeIgniter documentation进行了URI路由和另一个类似问题here,但无法找到一个有前景的解决方案。请不要建议CodeIgniter版本更新。

1 个答案:

答案 0 :(得分:4)

我不确定,如果这是你喜欢的答案,但我认为它应该有用。 只需将此功能放在用户控制器中即可。

public function _remap($method)
{
    if (method_exists($this, $method))
    {
        $this->$method();
    }
    else
    {
        $this->index($method);
    }
}
相关问题