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获取类中常量,属性,及方法列表的方法
Apr 09 PHP
PHP下常用正则表达式整理
Oct 26 PHP
PHP url 加密解密函数代码
Aug 26 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 PHP
PHP安全上传图片的方法
Mar 21 PHP
详解php的socket通信
Aug 11 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
php简单实现多维数组排序的方法
Sep 30 PHP
php实现文章置顶功能的方法
Oct 20 PHP
php微信开发之音乐回复功能
Jun 14 PHP
Yii框架学习笔记之session与cookie简单操作示例
Apr 30 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 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
ThinkPHP中实例Model方法的区别说明
2010/08/21 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
JavaScript 学习笔记(十一)
2010/01/19 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
Bootstrap Table使用整理(一)
2017/06/09 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
Python函数中的可变长参数详解
2019/09/12 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
python二维键值数组生成转json的例子
2019/12/06 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
python操作toml文件的示例代码
2020/11/27 Python
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
公司副总经理岗位职责
2015/04/08 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
python 爬取天气网卫星图片
2021/06/07 Python