uri_to_assoc(n) 在路由后不起作用


uri_to_assoc(n) doesn't work after routing

所以这目前为我加载了页面。

/

控制器名称/视图/ID/27/标题/鞋子

但是,我希望用户能够键入:

/

控制器名称/27/鞋子

以查看文件。所以在路由文件中,我做了这样的规则,

$route['controllername/(:num)/(:any)'] = "controllername/view/id/$1/title/$2";

原始地址适用于uri_to_assoc(n),因为我将其作为

    $array = $this->uri->uri_to_assoc(3);
    $id = $array['id'];
    $title = $array['title'];

但是一旦我路由它并使用新地址访问文件,我就会收到错误:消息:未定义的索引:id消息:未定义的索引:标题

我使用原始 url 访问它的方式没有收到这些错误。我想一旦 url 更改,uri_to_assoc(3) 的值就会改变,但我认为路由函数会解决这个问题。谁能帮我摆脱这些变量错误?

在这种情况下,

您需要ruri_to_assoc

http://codeigniter.com/user_guide/libraries/uri.html

$this->uri->ruri_to_assoc(n)

此函数与 [uri_to_assoc] 相同,只是它创建使用重新路由的 URI 的关联数组,以防使用 CodeIgniter 的 URI 路由功能。

无论如何,您仍应验证数组索引,以防 URL 本身无效。