Маршрут Кохана, используя неправильный шаблон для URL / темы - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь изменить 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:

pattern is[^/.,;?\n]++))?/update)?$#uD" but the subject is "channel/materials/28"">

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

Я пытался изменить имя маршрута, заставляя маршрут принимать URL-адрес только на materials/28, но ничего не работает из-за этого шаблона, который он использует для сравнения с моим URL. Как я могу это изменить?

1 Ответ

0 голосов
/ 14 марта 2020

РЕДАКТИРОВАТЬ: извините, что потратили ваше время, путь к странице обновления продукта был неправильным. Я прокомментировал эту часть кода, и она работала без нареканий.

...