2016-05-30 2 views
3

В codeIgniter Я создал маршруты для удаления контроллера/имени метода из URL-адреса, но проблема в том, что при попытке доступа к второму методу индекса контроллера он не загружает загрузку домашнего контроллеране удалось загрузить второй контроллер

У меня есть 2 контроллера Home.php и Admin.php, когда я набираю localhost/имя_папки/это метод индексирования home conrtollers, но когда я набираю localhost/имя_папки/admin, он перенаправляется на второй метод home controller, который может быть кто-нибудь помогает мне в написании маршрутов.

Вот мои маршруты, которые я создал

$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 не найден

+1

где ваша функция страницы, которую вы показываете в этих маршрутах: $ route ['([^ /] +) /?'] = 'Home/page/$ 1'; ' –

+1

Я верю, что вы не заметили мой Home.php контроллер –

+1

PLease проверьте мой домашний контроллер и второй метод –

ответ

1

Согласно тому, что я undertand, Установите контроллер по умолчанию, чтобы проверить аутентификацию первой:

$route['default_controller'] = 'admin'; 
//so that you can check weather the user is logged in or not. 

Чтобы получить доступ к вашему индексная функция второго контроллера:

$route['Home'] = "home"; 

Чтобы получить доступ к странице ($ ID) вашего второго контроллера функции:

$route['Home/Page/(:num)'] = "home/page/$1"; 
// where num id the ID you will be passing to the page function. 
Смежные вопросы