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 相关文章推荐
一段php加密解密的代码
Jul 16 PHP
PHP程序员编程注意事项
Apr 10 PHP
smarty section简介与用法分析
Oct 03 PHP
php 获取当前访问的url文件名的方法小结
Feb 08 PHP
php网上商城购物车设计代码分享
Feb 15 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
Yii分页用法实例详解
Dec 04 PHP
laravel安装zend opcache加速器教程
Mar 02 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 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的面试题集
2006/11/19 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
AOP的定义以及作用
2013/09/08 面试题
风险评估实施方案
2014/03/09 职场文书
人力资源管理求职信
2014/08/07 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
导游词之上海豫园
2019/10/24 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL