Я пытаюсь изменить URL-адрес на другой, используя класс маршрутизации в Кохане.
Вот моя ссылка:
<a class="btn" target="_self" href="<?php echo URL::base(). $current_channel->name;?>/materials/28" title="Materials Download">
<div class="txt">MATERIALS</div>
</a>
, которая дает мне ссылку: localhost:8081/channel/materials/28
, так как Я работаю на локальном сервере, используя php -S localhost:8081
Вот спецификации моих маршрутов:
Route::set('c_materials', '<channel_name>/materials(/<id>)', array('channel_name' => $channel_names))
->defaults(array(
'controller' => 'materials',
'action' => 'brands',
));
Route::set('materials', 'materials(/<id>)')
->defaults(array(
'controller' => 'materials',
'action' => 'brands',
));
Но по какой-то странной причине, которую я не могу понять, Кохана может не находит ссылку в файле routes.php
и выдает эту ошибку:
ErrorException [ Warning ]: preg_match(): Compilation failed: unmatched parentheses at offset 50
В журнале ошибок приведены аргументы, которые передаются в preg_match
in Routes.php
:
[^/.,;?\n]++))?/update)?$#uD" but the subject is "channel/materials/28"">
Я впервые использую Kohana, поэтому я понятия не имею, почему он использует этот странный шаблон, чтобы соответствовать моему URL. Это происходит и на других страницах, один и тот же шаблон для разных URL-адресов, который постоянно ломает мою систему.
Я пытался изменить имя маршрута, заставляя маршрут принимать URL-адрес только на materials/28
, но ничего не работает из-за этого шаблона, который он использует для сравнения с моим URL. Как я могу это изменить?