```
路线设定:
Route::set('home', '(<action>)(_<p>.htm)',
array(
'action' => '(movie|tv|new)',
'p' => '[2-9]|[1-9][0-9]+'
)
)->defaults(
array(
'controller' => 'Home',
'action' => 'index',
'p' => 1
)
);
通过Route :: url()获取网址:
Route::url('home',array('action' => 'movie', 'p' => 3));
得到了一个网址:
http:// www.domain.com/movie_3.htm
工作得非常好。
但是
Route::url('home',array('action' => 'movie'));
得到了一个网址:
http:// www.domain.com/movie_1.htm
这是不对的。
它应该是:
http:// www.domain.com/movie/
```
我该如何解决????
感谢。
=====更新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'));
得到了一个网址:
http://www.domain.com/movie
Route::url('test',array('p'=>'2'));
得到了一个网址:
http://www.domain.com/movie_2.htm
Route::url('test');
得到了一个网址:
http://www.domain.com/movie
= =,kohana核心是否有错误???
答案 0 :(得分:0)
我认为你应该从默认值和验证器中删除“p”参数。所以你的代码应该是这样的:
Route::set('home', '(<action>)(_<p>.htm)',
array(
'action' => '(movie|tv|new)'
)
)->defaults(
array(
'controller' => 'Home',
'action' => 'index'
)
);
我不确定从默认设置中删除p
,因此您可以尝试将其添加回来