全局MISS路由

如果希望在没有匹配到所有的路由规则后执行一条设定的路由,可以使用MISS路由功能,只需要在路由配置文件中定义:

  1. return [
  2. 'new/:id' => 'News/read',
  3. 'blog/:id' => ['Blog/update',['method' => 'post|put'], ['id' => '\d+']],
  4. '__miss__' => 'public/miss',
  5. ];

或者使用miss方法注册路由

  1. Route::miss('public/miss');

当没有匹配到所有的路由规则后,会路由到 public/miss路由地址。

分组MISS路由

分组支持独立的MISS路由,例如如下定义:

  1. return [
  2. '[blog]' => [
  3. 'edit/:id' => ['Blog/edit',['method' => 'get'], ['id' => '\d+']],
  4. ':id' => ['Blog/read',['method' => 'get'], ['id' => '\d+']],
  5. '__miss__' => 'blog/miss',
  6. ],
  7. 'new/:id' => 'News/read',
  8. '__miss__' => 'public/miss',
  9. ];

如果使用group方法注册路由的话,可以使用下面的方式:

  1. Route::group('blog',function(){
  2. Route::rule(':id','blog/read',[],['id'=>'\d+']);
  3. Route::rule(':name','blog/read',[],['name'=>'\w+']);
  4. Route::miss('blog/miss');
  5. },['method'=>'get','ext'=>'html']);