Как вызвать два контроллера в одной папке контроллера при использовании hmvc CodeIgniter? - PullRequest
0 голосов
/ 11 мая 2018

У меня следующая структура папок

Modules
    --controllers
        --User
        --Product

Как я могу вызвать контроллер продукта из пользовательского контроллера из одной конкретной функции?

Когда я запускаю этот URL http://[::1]/stagingweb/index.php/user/product, я получаюошибка "Запрошенная вами страница не найдена".

1 Ответ

0 голосов
/ 11 мая 2018

похоже, у вас проблема с пониманием концепции hmvc здесь

HMVC означает Иерархическая модель-представление-контроллер , что означает, что в Wiredesignz HMVC есть дополнительная вариация, называемая modules, добавленная к классическому шаблону MVC , используемому Codeigniter.

в вашем случае, если у вас есть users и products, вероятно, лучше всего создать 2 модуля (пользователей и продукты).

Итак, структура вашей папки будет выглядеть как

modules
    - users
        - controllers
            User.php
        - models
        - views

    - products
        - controllers
            Product.php
        - models
        - views

в Wiredesignz HMVC Integration существует класс MX_Controller, поэтому каждый контроллер модуля должен расширяться от него.

пример

class Product extends MX_Controller{}

И если вы хотите вызвать другой контроллер модулей в вашем конкретном контроллере, вам просто нужно позвонить

$return = modules::run('products/product/your_function');

Хотя в большинстве случаев, вероятно, более чистое решение - просто вызывать модели из других модулей вместо выполнения функции контроллеров ...

Весь процесс очень хорошо задокументирован здесь

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