簡體   English   中英

kohana3.3 Route :: url()效果不佳

[英]kohana3.3 Route::url() not working very well

```

路線設定:

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核心中是否存在錯誤???

我認為您應該從默認值和驗證程序中刪除“ p”參數。 因此,您的代碼應如下所示:

Route::set('home', '(<action>)(_<p>.htm)', 
           array(
               'action' => '(movie|tv|new)'
           )
)->defaults(
           array(
               'controller' => 'Home', 
               'action' => 'index'
           )
);

我不太確定要從默認值中刪除p ,因此您可以嘗試將其重新添加

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM