laravel框架中路由设置,路由参数和路由命名实例分析


Posted in PHP onNovember 23, 2019

本文实例讲述了laravel框架中路由设置,路由参数和路由命名。分享给大家供大家参考,具体如下:

laravel中必须先配置路由,才能使用。不像tp中不配置也能使用,因为tp可以通过pathinfo进行自动解析。

一、简单的路由设置

我们一般在routes/web.php文件中配置网页端路由。

//参数一,表示uri路径
//参数二,闭包函数,处理响应
Route::get('/test', function () {
  return '测试';
});

二、路由方法,处理特定http请求方式

Route::get('/', function () {});
Route::post('/', function () {});
Route::delete('/', function () {});

也可以通过Route::any()捕获任意请求方式

Route::any('/', function () {});

也可以通过Route::match()处理指定的请求方式

Route::match(['get', 'post'], '/', function () {});

三、将路由映射到控制器方法

Route::get('/hello', 'HelloController@index');

将/hello的处理映射到app/Http/Controllers/HelloController.php的index方法。

如果我们在Controllers目录下创建了多层目录,可以通过(目录\...\控制器@方法)的方式:

Route::get('/hello', 'Hello\HelloController@index');

四、路由参数

有些时候需要路由上传递参数,只需在路由路径中标识即可。

Route::get('/list/{page}', function ($page) {
  return "当前页数{$page}";
});

不过上面的page参数是必传的,如果没传将会报错找不到。这时候可以在标识后面加个?,表示可选,并给函数参数一个默认值。

Route::get('/list/{page?}', function ($page = 1) {
  return "当前页数{$page}";
});

我们也可以为路由参数设置正则规则,保证参数的正确性

Route::get('/search/{key?}/{page?}', function ($key = '', $page = 1) {
  return "搜索 {$key} 页数 {$page}";
})->where(['key' => '[A-Za-z]+', 'page' => '[0-9]+']);

获取路由参数

Route::get('/search/{key?}/{page?}', function (Request $req) {
  //获取单个路由参数
  var_dump($req::route('key'));
  //获取所有路由参数
  var_dump($req::route()->parameters());
});

通过Request::all()获取普通参数,类似?a=a&b=b&c=c

Route::get('/search/{key?}/{page?}', function (Request $req, $key = '', $page = 1) {
  var_dump($key);
  var_dump($page);
  var_dump($req::all());
});

五、路由命名

我们可以给路由设置一个名字,方便在视图中使用

Route::get('/list/{page?}', function ($page = 1) {
  return view('list', ['page' => $page]);
})->name('list.page');

我们在resources/views/list.blade.php视图中,通过 route() 方法来显示该路由地址

{{ route('list.page', ['page' => $page]) }}

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
浅析PHP页面局部刷新功能的实现小结
Jun 21 PHP
一个显示效果非常不错的PHP错误、异常处理类
Mar 21 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
WIFI万能钥匙密码查询接口实例
Sep 28 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 PHP
如何用Laravel包含你自己的帮助函数
May 27 PHP
laravel框架创建授权策略实例分析
Nov 22 #PHP
laravel框架语言包拓展实现方法分析
Nov 22 #PHP
laravel框架邮箱认证实现方法详解
Nov 22 #PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 #PHP
PHP实现微信提现功能(微信商城)
Nov 21 #PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 #PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 #PHP
You might like
通过具体程序来理解PHP里面的抽象类
2010/01/28 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
微信小程序实现下载进度条的方法
2017/12/08 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
浅谈Django的缓存机制
2018/08/23 Python
python 实现倒排索引的方法
2018/12/25 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
2014的自我评价
2014/01/13 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
建筑工地质量标语
2014/06/12 职场文书
普通党员对照检查材料
2014/09/24 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
毕业论文致谢范文
2015/05/14 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL