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也可以?成Shell Script
Oct 09 PHP
一个php作的文本留言本的例子(一)
Oct 09 PHP
PHP中return 和 exit 、break和contiue 区别与用法
Apr 09 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
php中heredoc与nowdoc介绍
Dec 25 PHP
PHP中的随机性 你觉得自己幸运吗?
Jan 22 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
laravel框架邮箱认证实现方法详解
Nov 22 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
Apr 06 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动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
javascript json 新手入门文档
2009/12/03 Javascript
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
Javascript的表单验证-初识正则表达式
2016/03/18 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
手机端转换rem适应
2017/04/01 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
Django卸载之后重新安装的方法
2017/03/15 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
linux面试题参考答案(9)
2015/01/07 面试题
应届生幼儿园求职信
2013/11/12 职场文书
社区健康教育实施方案
2014/03/18 职场文书
护理专业自荐信范文
2015/03/06 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL