H MVC с многоуровневым иерархическим кодигнитором - PullRequest
1 голос
/ 03 марта 2020

Я реализую H MVC в codeignter3. Я добавил все необходимые файлы в папку core и third_party.

Я также создал папку модулей. Внутри модуля я создал папку внешнего интерфейса. Внутри папки внешнего интерфейса я создал один тест папки, внутри которого я создал 3 контроллера папки, модели и представление. В папке контроллеров я создал Test. php, а в моделях моделей с именем Test_model. php и в представлениях один файл создал индекс. php

Мой код контроллера

<?php
class Test extends MX_Controller
{
    function __construct()
    {
        parent::__construct();
        $this->load->model('test_model');
    }

public  function index()
    {

        $data['main_content'] = 'home/index';
        $this->load->view('front/layout', $data);
    }

}
?>

внутри приложения / конфигурации / маршрутов. php

$route['test'] = "frontend/test/Test/index"; 

Когда я получаю к нему доступ через localhost / myprojectfoldername / test, я получаю 404

Ответы [ 3 ]

1 голос
/ 04 марта 2020

да, это дает вам ошибку. поскольку вы создали папку модулей внутри папки модуля.

, вы должны создать папку модулей в папке вашего приложения, а не внутри другой папки, путь определен в mx_loader application> modules , поэтому код не оштрафован на класс.

измените его каталог и обновите sh, чтобы устранить ошибку.

дальнейшая справка использует следующие ссылки:

http://www.dcaulfield.com/how-to-install-codeigniter-hmvc/

Или вы можете напрямую загрузить с моего диска Gmail:

https://drive.google.com/open?id=1Viyo7CQcjJNkBv5ahyiOs5RwwXiOVopg

после загрузки и настройки, нажмите URL:

http://localhost/hmvc/home

0 голосов
/ 04 марта 2020

Одна вещь о шаблоне H MVC в Codeigniter заключается в том, что вы должны очень хорошо следовать структуре папок.

В своем описании вы сказали, что создали файл Test. php в вашем контроллере, который находится в папке с именем "frontend", которая также находится в другой папке "test" в папке ваших модулей.

Теперь уловка в том, если имя вашего контроллера (Test. php) совпадает с папкой имя (тест), вы можете просто назвать его так:

$route['test'] = "frontend/test/index"; 

Вместо этого:

$route['test'] = "frontend/test/Test/index"; 

С другой стороны, скажем, вы создали другой файл (или контроллер) в текстовой папке с именем User. php, затем вы можете установить свой маршрут следующим образом:

$route['test/user'] = "frontend/test/user/index"; 

Затем, опять же, в вашем примере кода маршрута я заметил, что вы пытались использовать заглавные буквы для "Test", это делает на самом деле не имеет значения, что вы можете просто использовать вместо этого «тест» в нижнем регистре: $route['test'] = "frontend/test/test/index"; Но обратите внимание, это было просто для того, чтобы объяснить, чувствителен ли он к регистру или нет.

Попробуйте сами, и давайте посмотрим на результат

0 голосов
/ 04 марта 2020

Используйте как это:

 $route['some-route'] = "yourcontroller/yourmethod";

или другими словами:

$route['user'] = 'user/login';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...