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 相关文章推荐
用libTemplate实现静态网页的生成
Oct 09 PHP
Uchome1.2 1.5 代码学习 common.php
Apr 24 PHP
PHP技术开发技巧分享
Mar 23 PHP
zen cart新进商品的随机排序修改方法
Sep 10 PHP
PHP 第二节 数据类型之转换
Apr 28 PHP
php使用curl模拟登录后采集页面的例子
Nov 04 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
浅谈本地WAMP环境的搭建
May 13 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
PHP实现的限制IP投票程序IP来源分析
May 04 PHP
PHP实现页面静态化的超简单方法
Sep 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
星际争霸兵种名称对照表
2020/03/04 星际争霸
destoon官方标签大全
2014/06/20 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
本地对象Array的原型扩展实现代码
2010/12/04 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
vue配置请求本地json数据的方法
2018/04/11 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
2019/05/05 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
Python实现简单的HttpServer服务器示例
2017/09/25 Python
Python_LDA实现方法详解
2017/10/25 Python
在python 中实现运行多条shell命令
2019/01/07 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
Nike香港官网:Nike HK
2019/03/23 全球购物
自荐信不宜过于夸大
2013/11/06 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫