0

调用控制器的方法时遇到问题。顺便说一下,这个控制器是路由的。

路线

$route['admin/company'] ='company';

控制器

class Company extends CI_controller {

    public function __construct() {
        parent::__construct();
        session_start();

        /** Check if user is logged in */
        if ($this->session->userdata('user') != "") {

            $this->load->model('my_model');
            if ( $this->uri->segment(1) != "admin" ) {
              redirect('admin/company/'.$this->uri->segment(2));
            }

        } else redirect('/');
    }
        public function index() { Some coding here............  }
        public function addnew() { Some coding here...........}
        public function process() { Some coding here...... }
    }

当我调用“localhost/company”时,它可以正常工作并将我重定向到“localhost/admin/company”,这很棒。但是,当我尝试调用它的方法时,它会显示 404 错误消息。

示例:当我转到链接时:localhost/admin/company/addnew

路线中缺少什么吗?或在控制器中?还是别的什么?

谢谢,詹姆斯

4

3 回答 3

1

如果适用于所有用例,请在以下位置使用简单的包罗万象的规则routes.php

$route['admin/company/(.+)$'] = "company/$1";
于 2014-01-31T21:03:41.773 回答
0

创建一个管理目录并添加 $route["company"]="admin/company"

于 2013-07-03T15:40:11.170 回答
0

您必须为控制器中的每个功能添加一个路由。

$route['admin/company/addNew'] ='company/addNew';
$route['admin/company/process'] ='company/process';

这很烦人。更好的是,在您的“控制器”文件夹中创建一个文件夹“管理员”。将控制器放在文件夹上。因此,您可以使用 URL“localhost/admin/company”和所有方法访问您的控制器,而无需重新路由。

如果它一开始不起作用,请在“admin”文件夹中创建一个与您在路由文件(default_controller)中找到的名称相同的控制器。

于 2013-07-03T15:34:11.857 回答