Kohana 路由对 URL/主题使用错误的模式

Kohana Route using wrong pattern for URL/subject

提问人:Daniel Bertoldi 提问时间:3/14/2020 更新时间:3/14/2020 访问量:62

问:

我正在尝试使用 Kohana 中的路由类将 URL 更改为另一个 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/28php -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

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

查看错误日志,以下是传递给 :preg_matchRoutes.php

pattern is "#^products/details(?:/(?P<id>[^/.,;?\n]++))?/update)?$#uD" but the subject is "channel/materials/28"

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

我尝试更改路由名称,强制路由仅接受 URL 的 URL,但由于这种模式用于与我的 URL 进行比较,因此没有任何效果。我该如何更改它?materials/28

php kohana kohana-3.3

评论


答:

0赞 Daniel Bertoldi 3/14/2020 #1

编辑:很抱歉浪费您的时间,更新产品页面的路线是错误的。我评论了代码的那部分,它完美无缺。