【问题标题】:Passing variable to index function through the url通过 url 将变量传递给索引函数
【发布时间】:2026-01-30 09:20:16
【问题描述】:

我已经设置了一个称为链接的控制器,我有几个页面的路由被定向到这个控制器,并且在这个控制器中我有许多不同的功能,用于通过 ajax 调用访问页面的不同部分。这是我的路线配置中的一个示例:

    $route['games'] = "links";   
    $route['games/ajax_pager'] = "links/ajax_pager";
    $route['games/ajax_dbr/(:any)'] = "links/ajax_dbr/$1";
    $route['games/linkinfo/(:num)'] = "links/linkinfo/$1";
    $route['games/linkobj/(:num)'] = "links/linkobj/$1";
    $route['links'] = "links";
    $route['links/ajax_pager'] = "links/ajax_pager";
    $route['links/ajax_dbr/(:any)'] = "links/ajax_dbr/$1";
    $route['links/linkinfo/(:num)'] = "links/linkinfo/$1";

我现在想做的是,如果它与路由到上面的任何函数不匹配,则将 url 的第二段中的变量传递给 index 函数。所以是这样的:

$route['games/(:any)'] = "links/$1";

但这不起作用有没有办法在不创建新功能的情况下做到这一点。希望这很清楚 - 如果需要任何澄清,请告诉我。提前感谢您的帮助。

【问题讨论】:

  • 您看到了什么错误/“不起作用”症状?
  • 好吧,我收到了很多未定义的变量错误,但我刚刚意识到这是因为它遵循 404 覆盖路线(我还没有设置)-想知道我是否可以使用它。

标签: php codeigniter routing url-routing


【解决方案1】:

第一段是控制器,第二段是函数,第三段可以是你的变量。因此,如果您希望将变量发送到链接控制器的索引函数,则如下所示:

$route['games/(:any)'] = "links/index/$1";

当有人浏览到 index.php/games/atestvariable 时不会调用带有变量 atestvariable 的链接控制器的 index 函数。

【讨论】: