Kohana 路线使用了 URL/subject 的错误模式

Kohana Route using wrong pattern for URL/subject

我正在尝试使用 Kohana 中的路由 class 将 URL 更改为另一个。

这是我的 link:

<a class="btn" target="_self" href="<?php echo URL::base(). $current_channel->name;?>/materials/28" title="Materials Download">
    <div class="txt">MATERIALS</div>
</a>

这给了我 link: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',
    ));

但是由于一些我无法弄清楚的奇怪原因,Kohana 在 routes.php 文件中找不到 link 并抛出此错误:

ErrorException [ Warning ]: preg_match(): Compilation failed: unmatched parentheses at offset 50

查看错误日志,这是在 Routes.php 中传递给 preg_match 的参数:

这是我第一次使用 Kohana,所以我不知道为什么它使用这种奇怪的模式来匹配我的 URL。这也发生在其他页面上,不同 URL 的模式相同,这一直在破坏我的系统。

我试过更改路由名称,强制路由只接受 materials/28 处的 URL 但没有任何效果,因为它用来与我的 [=45= 进行比较的这种模式].我该如何更改它?

编辑:抱歉浪费您的时间,更新产品页面的路由错误。我评论了那部分代码,它完美地工作了。