【发布时间】:2016-05-30 09:59:17
【问题描述】:
在 codeIgniter 中,我创建了从 url 中删除控制器/方法名的路由,但问题是当我尝试访问第二个控制器索引方法时,它没有加载它正在加载主控制器
当我输入 localhost/foldername/ 时我有 2 个控制器 Home.php 和 Admin.php谁能帮我写路线。
这是我创建的路线
$route['default_controller'] = 'home';
$route['([^/]+)/?'] = 'home/page/$1'; //If I comment this it is working properly for me
管理控制器 Admin.php
class admin extends CI_Controller {
public function index() {
if($this->session->userdata('is_logged_in') == true) {
$this->load->view('admin/dashboard');
} else {
$this->load->view('admin/login');
}
}
}
主控制器 Home.php
class home extends CI_Controller {
public function index() {
$front_page = $this->get_data->front_page();
$page_data = $this->get_data->AllData('pages', $front_page);
$data['title'] = $page_data->row()->pagetitle;
$class = explode("/", $page_data->row()->template);
$data['body_class'] = $class[1];
$this->load->view('includes/header.php', $data);
if($class[1] == 'home') {
$this->load->view('templates/slider');
}
$this->load->view('templates/navigation.php');
$page_content = $page_data->row()->template;
$this->load->view($page_content, $data);
$this->load->view('templates/footer-form.php');
$this->load->view('includes/footer.php');
}
public function page($id) {
$page_data = $this->get_data->AllData('pages', $id);
$data['title'] = $page_data->row()->pagetitle;
$class = explode("/", $page_data->row()->template);
$data['body_class'] = $class[1];
$this->load->view('includes/header.php', $data);
if($class[1] == 'home') {
$this->load->view('templates/slider');
}
$this->load->view('templates/navigation.php');
if($class[1] == 'home') {
$data['slider'] = 'templates/slider';
}
$data['content'] = $page_data->row()->template;
$this->load->view('index', $data);
$this->load->view('templates/footer-form.php');
$this->load->view('includes/footer.php');
}
}
现在任何人都可以帮我解决这个问题,当我评论自定义路由时,它工作得很好,但是我试图删除方法和控制器名称的页面的主控制器是因为找不到 404
【问题讨论】:
-
您在此路线中显示的页面功能在哪里
$route['([^/]+)/?'] = 'home/page/$1'; -
我相信你没有注意到我的 Home.php 控制器
-
请检查我的家庭控制器和第二种方法
-
将您的路线替换到此
$route['(.*)'] = 'home/page/$1'; -
$route['([^/home]+)/?'] = 'home/page/$1';如果在 root 之后的 url 中有主页,这将重定向到所有主控制器操作,否则它将继续将任何 url 重定向到您的页面操作
标签: php codeigniter