0

```

ルート設定:

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() で URL を取得:

Route::url('home',array('action' => 'movie', 'p' => 3));

URLを取得しました:

http:// www.domain.com/movie_3.htm

非常にうまく機能しています。

しかし

Route::url('home',array('action' => 'movie'));

URLを取得しました:

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'));

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

= =、コハナコアにバグはありますか???

4

1 に答える 1

0

デフォルトとバリデーターから「p」パラメーターを削除する必要があると思います。したがって、コードは次のようになります。

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

デフォルトからの削除についてはよくわからないpので、もう一度追加してみてください

于 2013-08-19T07:38:55.870 に答える