【发布时间】:2020-06-25 21:01:28
【问题描述】:
我正在尝试使用 Kohana 中的路由类将 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',
));
但由于一些我想不通的奇怪原因,Kohana 在routes.php 文件中找不到链接并抛出此错误:
ErrorException [ Warning ]: preg_match(): Compilation failed: unmatched parentheses at offset 50
查看错误日志,这里是在Routes.php 中传递给preg_match 的参数:
这是我第一次使用 Kohana,所以我不知道它为什么使用这种奇怪的模式来匹配我的 URL。这也发生在其他页面中,不同 URL 的模式相同,这不断破坏我的系统。
我尝试更改路由名称,强制路由仅接受materials/28 的 URL,但由于它用于与我的 URL 进行比较的这种模式,所以没有任何效果。怎么改?
【问题讨论】:
标签: php kohana kohana-3 kohana-3.3