Не удается получить доступ к контроллеру Codeigniter в подпапке - PullRequest
0 голосов
/ 13 сентября 2011

Я установил папку с контроллером: controllers/admin/home.php, но я получаю 404 из браузера, когда пытаюсь получить к нему доступ.

Это мой файл маршрутов:

$route['employers'] = "employers/home";
//$route['employers/dash'] = "employers/dash";
$route['default_controller'] = "home";
$route['404_override'] = '';

Это файл контроллера:

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

class home extends CI_Controller {

    function __construct(){

        parent::__construct();

        /*
            enable profiler
        */
        //$this->output->enable_profiler(TRUE);     

        $this->load->helper('url');
        $this->load->library('ion_auth');
        $this->load->library('session');

        $this->load->library('form_validation');

        $this->load->helper('layout');
    }
}

.htaccess кажется хорошим стандартом. Любые идеи о том, что я делаю не так?

Ответы [ 2 ]

1 голос
/ 13 сентября 2011

Обратите внимание на некоторые вещи: 1) Маршруты выполняются в том порядке, в котором они написаны , и ваши пользовательские маршруты ДОЛЖНЫ следовать по умолчанию. Итак, должно быть:

$route['default_controller'] = "home";
$route['404_override'] = '';
$route['employers'] = "employers/home";

Это если ваш контроллер "home" находится внутри папки "работодатели".

2) Контроллерам не нужно всего того, что вы написали, на самом деле вам даже не нужно для вызова родительского конструктора , если вы не планируете загружать библиотеки и ресурсы для методов всего контроллера (что может быть достигнуто также путем их автозагрузки в файле autoload.php), поэтому это может быть просто:

file: application/controllers/employers/home.php

class Home extends CI_Controller {

    function index()
    {
       // this is the method you're calling with your URL!
    }
}

3) Как указано выше, и как уже указывалось @Wesley, с помощью вашего URL вы пытаетесь получить доступ к методу INDEX вашего контроллера HOME в подпапке EMPLOYERS. Но вы не определили метод index () (который вызывается по умолчанию, если не указано другое). Вместо этого кажется, что КИ пытается найти контролера работодателя и домашний метод; если он не находит его, но у вас есть папка работодателей, он пытается получить доступ к методу индекса в домашнем контроллере в папке работодателей. И, поскольку он тоже не нашел, вы получаете страницу 404.

Надеюсь, я в порядке, в противном случае просто спросите.

0 голосов
/ 13 сентября 2011

Вы не смогли сказать, как вы пытались получить к нему доступ через URL. Должно быть:

{YOUR_BASE_URL}admin/home

... с последующими необязательными сегментами URL (/method/param1/param2/etc).

Без дополнительных сегментов по умолчанию будет загружен метод index. Однако, поскольку у вас не определены какие-либо методы, загружать нечего.

Если это не помогло после определения метода, переместите файл контроллера из подкаталога для начинающих и убедитесь, что он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...