路由别名

最后更新于:2022-04-01 21:19:04

路由别名功能可以使用一条规则,批量定义一系列的路由规则。 例如,我们希望使用`user`可以访问index模块的User控制器的所有操作,可以使用: ~~~ // user 别名路由到 index/User 控制器 Route::alias('user','index/User'); ~~~ 如果在路由配置文件`route.php`中定义的话,使用: ~~~ return [ '__alias__' => [ 'user' => 'index/User', ], ]; ~~~ 和前面的方式是等效的。 然后可以直接通过URL地址访问User控制器的操作,例如: ~~~ http://serverName/index.php/user/add http://serverName/index.php/user/edit/id/5 http://serverName/index.php/user/read/id/5 ~~~ > 如果URL参数绑定方式使用按顺序绑定的话,URL地址可以进一步简化,参考请求->方法参数绑定。 路由别名可以指向任意一个有效的路由地址,例如下面指向一个类 ~~~ // user 路由别名指向 User控制器类 Route::alias('user','\app\index\controller\User'); ~~~ > 路由别名不支持变量类型和路由条件判断,单纯只是为了缩短URL地址,并且在定义的时候需要注意避免和路由规则产生混淆。 支持给路由别名设置路由条件,例如: ~~~ // user 别名路由到 index/user 控制器 Route::alias('user','index/user',['ext'=>'html']); ~~~ 或者在路由配置文件中使用: ~~~ return [ '__alias__' => [ 'user' => ['index/user',['ext'=>'html']], ], ]; ~~~ ### 操作方法黑白名单(`v5.0.2+`) 路由别名的操作方法支持白名单或者黑名单机制,例如: ~~~ // user 别名路由到 index/user 控制器 Route::alias('user','index/user',[ 'ext'=>'html', 'allow'=>'index,read,edit,delete', ]); ~~~ 或者使用黑名单机制 ~~~ // user 别名路由到 index/user 控制器 Route::alias('user','index/user',[ 'ext'=>'html', 'except'=>'save,delete', ]); ~~~ 并且支持设置操作方法的请求类型,例如: ~~~ // user 别名路由到 index/user 控制器 Route::alias('user','index/user',[ 'ext'=>'html', 'allow'=>'index,save,delete', 'method'=>['index'=>'GET','save'=>'POST','delete'=>'DELETE'], ]); ~~~
';