# 变量规则 支持在规则路由中为变量用正则的方式指定变量规则,弥补了动态变量无法限制具体的类型问题,并且支持全局规则设置。 > 不需要开头添加`^`或者在最后添加`$`,也不支持模式修饰符,系统会自动添加。 ## 局部变量规则 比如定义如下路由: ```php Route::get('hello/:name', 'index/index/test') ->pattern(['name' => '\w+']); ``` 访问以下路由将能正常访问 ``` http://www.my-tp5.com/hello/xiaoyu ``` 而以下路由将发生错误 ``` http://www.my-tp5.com/hello/全在昱 ``` ### 配合动态路由使用 (组合变量) 组合变量的优势是路由规则中没有固定的分隔符,可以随意组合需要的变量规则和分割符,配合变量规则使用非常适用。 ```php Route::get('item<name><id>', 'product/detail') ->pattern(['name' => '[a-zA-Z]+', 'id' => '\d+']); Route::get('item@<name>-<id>', 'product/detail') ->pattern(['name' => '\w+', 'id' => '\d+']); ``` ## 全局变量规则 设置全局变量规则,全部路由有效 : ```php // 设置name变量规则(采用正则定义) Route::pattern('name', '\w+'); // 支持批量添加 Route::pattern([ 'name' => '\w+', 'id' => '\d+', ]); ```