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 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
利用php+mysql来做一个功能强大的在线计算器
Oct 12 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
PHP将进程作为守护进程的方法
Mar 19 PHP
PHP实现在线阅读PDF文件的方法
Jun 17 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
redirect_uri参数错误的解决方法(必看)
Feb 16 PHP
laravel中命名路由的使用方法
Feb 24 PHP
php + nginx项目中的权限详解
May 23 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
php实现的mongoDB单例模式操作类
Jan 20 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 简单数组排序实现代码
2009/08/05 PHP
PHP has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
微信小程序实现登录注册功能
2020/12/29 Javascript
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
Python递归函数实例讲解
2019/02/27 Python
Python类的动态绑定实现原理
2020/03/21 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
橄榄树药房:OLIVEDA
2019/09/01 全球购物
生物化学研究助理员求职信
2013/10/09 职场文书
物业管理大学生个人的自我评价
2013/10/10 职场文书
幼儿教师培训感言
2014/03/08 职场文书
年会主持词结束语
2014/03/27 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
党小组推荐意见
2015/06/02 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
关于python爬虫应用urllib库作用分析
2021/09/04 Python