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
利用static实现表格的颜色隔行显示
Oct 09 PHP
smarty section简介与用法分析
Oct 03 PHP
PHP 在线翻译函数代码
May 07 PHP
PHP 远程关机实现代码
Nov 10 PHP
phpmailer发送gmail邮件实例详解
Jun 24 PHP
php中addslashes函数与sql防注入
Nov 17 PHP
windows7下php开发环境搭建图文教程
Jan 06 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 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中html:list标签传递多个参数实例
2014/10/30 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
php源码的使用方法讲解
2019/09/26 PHP
javascript cookies操作集合
2010/04/12 Javascript
js 火狐下取本地路径实现思路
2013/04/02 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
numpy.delete删除一列或多列的方法
2018/04/03 Python
Python3最长回文子串算法示例
2019/03/04 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
python日志模块logbook使用方法
2019/09/19 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
百思买美国官网:Best Buy
2016/07/28 全球购物
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
师德个人剖析材料
2014/02/02 职场文书
绘画专业自荐信范文
2014/02/23 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
运动会加油稿100字
2014/09/19 职场文书
投标承诺函范文
2015/01/21 职场文书
详解JS ES6编码规范
2021/05/07 Javascript