@Chetson
front-end разработчик

Как сделать большую вложенность контроллеров в Kohana 3.3.*?

Использую в проекте фреймворк kohana 3.3.6.
Делаю модульную структуру приложения, и суть следующая.
В Личном Кабинете (ЛК) менеджеров есть раздел Catalog, за который отвечает Controller_Manager_Catalog, так же внутри каталога есть товары (Items) за который отвечает Controller_Manager_Catalog_Items, и есть категории товаров Controller_Manager_Catalog_Categories.

Структура папок следующая:

application/classes/Controller/Manager/Catalog.php
application/classes/Controller/Manager/Catalog/Categories.php
application/classes/Controller/Manager/Catalog/Items.php


Роутинг следующего формата:
Route::set('manager', 'manager(/<controller>(/<action>(/<id>)))')
->defaults(array(
    'directory' => 'manager',
    'controller' => 'catalog',
    'action'     => 'index',
));


Пробую сделать вот такой:

Route::set('manager-catalog', 'manager/catalog(/<controller>(/<action>(/<id>)))')
->defaults(array(
    'directory' => 'manager/catalog',
    'controller' => 'categories',
    'action'     => 'index',
));


но при попытке зайти по адресу:
http://sitename.ru/manager/catalog/categories/index
выдает ошибку 404.

Более кастомные и персонифицированные роуты стоят выше общих, т.е. проблема не в этом.
Структура по документации верная, но работать не желает.

Может кто сталкивался с данной необходимостью подобного размещения? Подскажите как Вы решали данную проблему?

P.S. С одноуровневой вложенностью проблем не возникает. Танцы с бубном идут именно когда создается именно под-под директория контроллеров.
Даже если корневой контроллер изменить (исправить имя на другое) проблема не пропадает.
  • Вопрос задан
  • 207 просмотров
Пригласить эксперта
Ответы на вопрос 1
@entermix
Вот так сделайте:
Route::set('manager-catalog', 'manager/catalog(/<controller>(/<action>(/<id>)))')
->defaults(array(
    'directory' => 'manager/Catalog', // !
    'controller' => 'categories',
    'action'     => 'index',
));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы