codeigniter 路由问题

Posted

技术标签:

【中文标题】codeigniter 路由问题【英文标题】:codeigniter route problem 【发布时间】:2011-09-16 21:42:19 【问题描述】:

我想要的结果:

greeting/102/steve =>  greeting/index/102/steve

在 greeting.php 中:

function index($order,$name)

    echo "order: $order , name : $name ! ";
    

在 route.php 中:

$route['greeting/(:num)/(:any)'] = "greeting/index/$1/$2";    

我得到的结果:

order : , name : steve !

【问题讨论】:

这应该按照您设置的方式工作。 name 通过但 order 并不奇怪 - 但暗示该路线确实有效。我怀疑这个问题还有更多问题? 【参考方案1】:

其实用双引号正确。它甚至在手册中都这样指出(除了已经做了一百次之外),所以我没有看到@cwallenpool 指出的问题。你的路由看起来很好,确保它被称为 after 保留路线

$route['default_controller'] = "welcome";
$route['404_override'] = '';
$route['greeting/(:num)/(:any)'] = "greeting/index/$1/$2";

. 我建议您尝试使用$this->uri->rsegment(n)(user guide here 上的信息)来捕获给您带来麻烦的重新路由的 uri 段。 (类似于 $this->uri->segment(n),但专为重新路由的 URI 而设计)

您也可以尝试将$config['uri_protocol'] 从 AUTO 更改为 PATH_INFO(或其他替代方法之一),看看问题是否存在。如果您使用 htaccess 从您的 URL 中删除 index.php,还请记住删除 $config['index_page'] 中的 'index.php' 部分。

【讨论】:

【参考方案2】:

我最近编写了一个库,可以在这种情况下提供便利。我通过名称而不是编号将值传递给所需的变量。名称也包含在路线中以方便参考。

也许你可以看看它,对你的情况可能有用。

https://github.com/aajiwani/LaravelRoutingForCodeIgniter

【讨论】:

以上是关于codeigniter 路由问题的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的 ReferenceError:$ 未定义 - Datepicker - Codeigniter 3

无法让 echo form_open 工作 - CodeIgniter

codeigniter 3 - 删除 index.php:Linux 上的错误 404,但在 Windows 上工作正常

致命错误:未捕获的 ArgumentCountError

CodeIgniter 正确设置路由

Codeigniter - CMS 的最佳路由配置?