继续基于上一章的案例代码,首先修改/application/index/controller/Index.php
文件的内容:
class Index
{
public function test($name,$gift)
{
return 'congratulation '.$name.', you got '.$gift.'!';
}
}
然后修改/config/route.php
文件,仅适用动态方式即可:
<?php
think\Route::rule('test/:name/:gift','index/index/test','GET',['ext'=>'shtml'],['name'=>'\w{3,8}','gift'=>'\w{1,10}']);
?>
根据规则传入两个参数给URL
:http://tp5.com/test/Mike/iphone.shtml
,即可正常访问。
我们再对/application/index/controller/Index.php
文件的内容进行一下修改,把gift
参数作为默认参数,给它一个默认值:
class Index
{
public function test($name,$gift='tissue')
{
return 'congratulation '.$name.', you got '.$gift.'!';
}
}
同样的,再在路由规则中响应修改一下支持可选参数的:
<?php
think\Route::rule('test/:name/[:gift]','index/index/test','GET',['ext'=>'shtml'],['name'=>'\w{3,8}','gift'=>'\w{1,10}']);
?>
这样我们就能用不传入gift
参数,就能自动用tissue
来作为默认参数。
路由规则是路由技术的核心,后面要学习的路由参数、变量规则、分组路由、别名路由等都是围绕着如何简化创建路由规则进行的。