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读注册表
Oct 09 PHP
无数据库的详细域名查询程序PHP版(1)
Oct 09 PHP
聊天室php&mysql(六)
Oct 09 PHP
PHP计划任务、定时执行任务的实现代码
Apr 23 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 PHP
php防止sql注入代码实例
Dec 18 PHP
php获取发送给用户的header信息的方法
Mar 16 PHP
微信支付PHP SDK之微信公众号支付代码详解
Dec 09 PHP
PHP实现的ID混淆算法类与用法示例
Aug 10 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
Yii框架连表查询操作示例
Sep 06 PHP
Laravel框架下的Contracts契约详解
Mar 17 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
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
我的php学习笔记(毕业设计)
2012/02/21 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
php实现将Session写入数据库
2015/07/26 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
ptyhon实现sitemap生成示例
2014/03/30 Python
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
深入理解Python 代码优化详解
2014/10/27 Python
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
Python线程详解
2015/06/24 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
2018/01/11 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
师范生自我鉴定范文
2013/10/05 职场文书
先进个人事迹材料
2014/01/25 职场文书
一岗双责责任书
2014/04/15 职场文书
语文教育专业求职信
2014/06/28 职场文书
金融专业求职信
2014/08/05 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书