Kohana 3.2 Маршруты: несколько каталогов - PullRequest
2 голосов
/ 08 февраля 2012

У меня есть маршрут:

Route::set('foo/subdir', '<directory>/<variable>/subdir/<controller>/<action>');

Я бы хотел перенаправить этот URL на следующий контроллер / действие:

/application/classes/<directory>/subdir/<controller>.php::action_<action>()

У меня уже есть и мне нужен этот маршрут, который усложняет вещи:

Route::set('foo', '<controller>/<variable>/<action>');

Это возможно?

Ответы [ 3 ]

3 голосов
/ 08 февраля 2012

Почему бы и нет, если маршрут по умолчанию определен после маршрута каталога.

Route::set('foo/subdir', '<directory>/<variable>/subdir/<controller>/<action>')
    ->defaults(array(
        'directory'     => 'default_directory',
        'controller'    => 'index',
        'variable'      => 'default_variable',
        'action'        => 'index',
    ));

Маршрутизация Kohanas поддерживает каталоги «изначально», не нужно ничего взламывать.

Обратите внимание, что имена ваших классов также должны включать имя каталога.

0 голосов
/ 09 октября 2012

Используйте REGEXP, чтобы перехватить каталог и подкаталог как / directory / subdirectory / controller / action соответствовать Route как // где regexp позволяет вам поместить / в каталог. Затем внесите небольшие изменения в свой класс Route, чтобы изменить все / на _

Это еще не проверено ... пока. ;) Но я собираюсь ...

0 голосов
/ 09 февраля 2012

Я хотел бы добавить подкаталог в каталог

Это будет возможно в Kohana v3.3 с использованием новой функциональности Route :: filter . В настоящее время нет способа сделать это в Kohana 3.1 или 3.2 без изменения классов Route и / или Request.

...