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 相关文章推荐
实现“上一页”和“下一页按钮
Oct 09 PHP
PHP的ASP防火墙
Oct 09 PHP
利用PHP制作简单的内容采集器的代码
Nov 28 PHP
生成php程序的php代码
Apr 07 PHP
PHP逐行输出(ob_flush与flush的组合)
Feb 04 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
Sep 28 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
php自动载入类用法实例分析
Jun 24 PHP
PHP实现清除MySQL死连接的方法
Jul 23 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
Dec 02 PHP
php微信公众号开发之校园图书馆
Oct 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
实用函数10
2007/11/08 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
javascript 树控件 比较好用
2009/06/11 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
2018/11/28 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
Python开发编码规范
2006/09/08 Python
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
Django实现学生管理系统
2019/02/26 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
python tkinter组件使用详解
2019/09/16 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
Charles & Keith欧盟:新加坡时尚品牌
2019/08/01 全球购物
房屋买卖协议书范本
2014/04/10 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
2014年学习厉行节约反对浪费思想汇报
2014/09/10 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
python字符串常规操作大全
2021/05/02 Python
判断Python中的Nonetype类型
2021/05/25 Python
详解在OpenCV中如何使用图像像素
2022/03/03 Python
索尼ICF-5900W收音机测评
2022/04/24 无线电