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获得当前的脚本网址
Dec 10 PHP
php中一个有意思的日期逻辑处理
Mar 25 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
php增删改查示例自己写的demo
Sep 04 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
PHP实现路由映射到指定控制器
Aug 13 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
php成功操作redis cluster集群的实例教程
Jan 13 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 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 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
一个简单的php路由类
2016/05/29 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
react 生命周期实例分析
2020/05/18 Javascript
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
Python实现获取某天是某个月中的第几周
2015/02/11 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
Python脚本实现12306火车票查询系统
2016/09/30 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
python根据多个文件名批量查找文件
2019/08/13 Python
python多线程分块读取文件
2019/08/29 Python
python中数据库like模糊查询方式
2020/03/02 Python
python多线程和多进程关系详解
2020/12/14 Python
工作评语大全
2014/04/26 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
2014年变电站工作总结
2014/12/19 职场文书
催款函范本大全
2015/06/24 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers