2013-03-26 4 views
2

Я использую HMVC и создал модуль, называемый пользователем. Внутри модулей/user/config у меня есть route.php, используя тот же формат, что и application/config/routes.php.CodeIgniter с Wiredesignz HMVC routing

В приложении/Config/routes.php У меня есть следующий маршрут:

$route['login'] = 'user/login';

Это прекрасно работает, буит, когда я переместить его в приложение/модули/пользователя/конфигурации/routes.php, он не работает. Я получаю ошибку 404.

Согласно HMVC документации (https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc), вы должны создать маршруты следующим образом:

$route['module_name'] = 'controller_name';

Это означает, что я должен сделать это следующим образом:

$route['user'] = 'user';

Этот вызывает 404, однако, даже если я не получил 404, это не совсем то, что я имею в виду. Я все еще хочу, чтобы моя маршрутизация работала как/login, идет к пользователю/логину.

Любые идеи были бы высоко оценены!

Спасибо!

+0

У кого-нибудь есть идеи здесь, пожалуйста? –

ответ

3

У меня была такая же проблема, как и вы, к сожалению, поскольку Wiredesignz создал расширение, для которого требуется, чтобы путь начинался с самого имени модуля, если вы поместили файл маршрутов внутри самого модуля. Это единственный способ посмотреть файл маршрутов, если он находится внутри модуля. С учетом сказанного он уже знает имя модуля в этой точке, поэтому вам нужно просто указать контроллер и метод, к которому вы хотите перенаправить. Так что в вашем routes.php файл внутри вашего модуля каталога конфигурации, если вы поставите это:

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

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

$route['user'] = 'user/login'; 

Это будет работать, я верю. Однако я все еще хотел большего. Я хотел иметь возможность использовать маршруты, которые могут иметь или не иметь имя модуля. Из-за этого мне пришлось расширить модуль, чтобы это произошло, и вы можете найти работу, которую я сделал здесь, если это помогает:

https://github.com/Bigwebmaster/codeigniter-modular-extensions-hmvc

Это позволит затем использовать маршрут вы хотели, таких как:

$route['login'] = 'user/login'; 

Даже с этим route.php, размещенным внутри каталога конфигурации модуля.

+0

Спасибо @Bigwebmaster. Я посмотрю вашу вилку HMVC и посмотрю, смогу ли я заставить ее работать на моем сайте. Было бы здорово. Как только у меня был чемодан, чтобы проверить это, я буду поддерживать/принимать, если потребуется. Спасибо за ответ! –

+0

Блестящий, спасибо, @Bigwebmaster, он работает на 100% для меня тоже. Хорошего дня! –

+0

Привет, @Bigwebmaster, он работает хорошо, но есть что-то, на что вы можете захотеть взглянуть: если вы хотите вызвать контроллер/функцию, не связанную с определенным маршрутом, это даст вам ошибку 404. Скорее всего, вам может потребоваться вызывать функции, которые не связаны с маршрутом на той или иной стадии. –

Смежные вопросы