在上一篇文章中我们了解到了基本的路由定义,接下来我们玩点新的:
打开web.php新增代码:
Route::get('dog/{id}', function ($id) {
return '获取到一只狗,他的ID是'.$id;
});
这时候我们用Chrome访问http://testdemo.test/dog/1,这是可以访问的,这里的1可以是任何值
但是仅仅输入http://testdemo.test/dog是访问失败,404。
web.php新增代码:
Route::get('cat/{name?}', function ($name='cat one') {
return '获取到一只猫,他叫做'.$name;
});
这时候我们用Chrome访问http://testdemo.test/cat/alpha,这是可以访问的,这里的alpha可以是任何值
仅仅输入http://testdemo.test/cat是可以访问的,返回值是获取到一只猫,他叫做cat one,因为我们在函数传参中写了默认值,{name?}代表这不是必填项。
以上做法的id和name可以输入任何形式的参数,我们可以用正则表达式限定数据格式。
添加where条件比如改成:
Route::get('dog/{id}', function ($id) {
return '获取到一只狗,他的ID是'.$id;
})->where('id','[0-9]+');
Route::get('cat/{name?}', function ($name='cat one') {
return '获取到一只猫,他叫做'.$name;
})->where('name','[a-zA-z]+');
这时候再自行测试链接,这就完成了数据格式的限定。
路由列表命令小知识点补充:
php artisan route:list
+--------+----------+-------------+------+---------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+-------------+------+---------+--------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | about | | Closure | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | GET|HEAD | cat/{name?} | | Closure | web |
| | GET|HEAD | dog/{id} | | Closure | web |
+--------+----------+-------------+------+---------+--------------+
系列文章: