codeigniter控制器索引函数调用需要其名称

时间:2012-06-02 22:53:23

标签: php function codeigniter controller call

我有一个名为Categories的控制器和一个名为index的函数,带有1个参数$ cat_id

所以它看起来像这样:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class categories extends CI_Controller {

    function __construct(){
        parent::__construct();
    }

    public function index($cat_id = null){

    }
}

当我从浏览器中调用它时,问题出现了...我用这个:

http://www.mysite.dev/categories/12311323

但返回404错误页面

相反,如果我使用

http://www.mysite.dev/categories/index/12313131

会正常工作......

我怎样才能确保索引函数的URL中不需要索引?

2 个答案:

答案 0 :(得分:6)

默认的CodeIgniter路由是/ controller / function / argument。要指定参数,您需要先指定该函数。如果要在没有该函数的情况下指定参数,则需要定义自定义路径。将此行添加到路由配置文件中应该可以执行您想要的操作。

$route['categories/(:num)'] = "categories/index/$1";

答案 1 :(得分:1)

您描述的是CI的默认(预配置)路由。您可以定义自己的模式,使您在问题中描述的模式有效。请参阅:URI Routing