route setting:
```javascriptRoute::set('home','()(_.htm)',
array( 'action' => '(movie|tv|new)', 'p' => '[2-9]|[1-9][0-9]+' ))->defaults(
array( 'controller' => 'Home', 'action' => 'index', 'p' => 1 ));
get a url by Route::url():
```javascript=>::url(‘=>’,array('action‘home’电影‘,'p’home 3));
got a url:
```javascripthttp:// www.domain.com/movie_3.htm
working very well.
but
```javascript=>::url(‘home’,array('action‘home’电影‘));
got a url:
```javascripthttp:// www.domain.com/movie_1.htm
this is not right .
it should be:
```javascripthttp:// www.domain.com/movie/
我该如何修复它?
谢谢。
=====update 8/19 16:23 =====
Route::set('test', 'movie(_<p>.htm)',
array('p' => '[2-9]|[1-9][0-9]+')
)->defaults(
array('controller' => 'Movie', 'action' => 'index', 'p' => '1')
);此路径设置在任何情况下都适用
Route::url('test',array('p'=>'1'));获取了一个url:
http://www.domain.com/movie
Route::url('test',array('p'=>'2'));获取了一个url:
http://www.domain.com/movie_2.htm
Route::url('test');获取了一个url:
http://www.domain.com/movie= =,kohana内核有bug吗?
发布于 2013-08-19 15:38:56
我认为你应该从默认值和验证器中删除"p“参数。因此,您的代码应该如下所示:
Route::set('home', '(<action>)(_<p>.htm)',
array(
'action' => '(movie|tv|new)'
)
)->defaults(
array(
'controller' => 'Home',
'action' => 'index'
)
);我不太确定是否要将p从默认值中删除,因此您可以尝试重新添加它
https://stackoverflow.com/questions/18308540
复制相似问题