当我调用控制器的方法时遇到问题。顺便说一句,这个控制器被路由。
路线
$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
路线上缺少什么?还是在控制器?或其他什么?
谢谢, 詹姆斯
答案 0 :(得分:1)
如果适用于所有用例,请在routes.php
中使用简单的包罗万象规则:
$route['admin/company/(.+)$'] = "company/$1";
答案 1 :(得分:0)
您必须为控制器中的每个功能添加路线。
$route['admin/company/addNew'] ='company/addNew';
$route['admin/company/process'] ='company/process';
这很烦人。更好的是,在“controllers”文件夹中创建一个“admin”文件夹。将控制器放在文件夹上。因此,您可以使用URL“localhost / admin / company”和所有方法访问您的控制器,而无需重新路由。
如果它最初不起作用,请在“admin”文件夹中创建一个控制器,其名称与路径文件(default_controller)中的名称相同。
答案 2 :(得分:0)
创建一个管理目录并添加$ route [“company”] =“admin / company”