lavarel 响应宏
宏的概念
计算机里的宏是批量处理的意思。比如我们在进行文本编辑的时候,打错字会有回退的功能——control+z;但是这是我们的键盘操作,计算机在进行处理的时候是不能理解的,他必须对最近两次操作进行比对,然后撤销最近一次操作的修改,然后展示文本。计算机虽然不理解control+z是什么意思,但是一定有一个预定义是在他遇到control+z的时候进行上述的操作。这种根据预定义的规则对频繁使用的一系列命令和序列转换成对应的输出(面对计算机)的定义叫做叫做宏。这种替换一般都在预编译的时候进行,称为宏展开;其实windows的图形界面交互就是频繁的使用宏,进行一系列的计算机操作,这一点类似封装,对频繁使用的操作封装成函数,使用时直接输入简短的函数名和参数,服务器就自动完成一些列的操作;lavarel 的响应宏
在编程的过程中可能经常用到一些特定的响应,这时候我们需要自定义响应宏把这些频繁的操作封装起来,再次使用的时候直接调用;
(1)需要在\App\Providers文件夹下新建一个服务提供者类似ResponseServiceProvider:
<?php namespace App\Providers; use Illuminate\Support\Facades\Response;
use Illuminate\Support\ServiceProvider; class ResponseServiceProvider extends ServiceProvider
{
/**
* Perform post-registration booting of services.
*
* @return void
*/
public function boot()
{
Response::macro('upper', function ($value) {
return Response::make(strtoupper($value));
});
}
(2)macro方法接受的第一个参数就是定义的响应名称,第二个参数是一个闭包函数,响应宏的闭包在 ResponseFactory 实现类或辅助函数 response 中调用宏名称的时候被执行:
Route::get('upper/response', function() {
return response()->upper('ppsty');
});
这样返回的响应就是响应宏处理后的结果;
3.如果我们在与前端的交互种需要特定的响应数据,
比如json格式的数据:
{'isError'=>true,'isSuccess'=>false,'error'=>$error,'code'=> $code,'data'=>[],}
(1)这样我们就需要对响应进行格式封装:
<?php namespace App\Providers; use Illuminate\Support\Facades\Response;
use App\Services\AjaxResponse;
use Illuminate\Support\ServiceProvider; class ResponseServiceProvider extends ServiceProvider
{
/**
* Perform post-registration booting of services.
*
* @return void
*/
public function boot()
{
Response::macro('toBeJson', function ($msg = [], $code = 200, $sStatus = 200, array $xHeaders = [], $sOptions = 0) {
return response()->json(AjaxResponse::ajax($msg, $code), $sStatus, $xHeaders, $sOptions);
});
}
}
(2)对格式的操作需要新建一个AjaxResponse,把对格式的规范写到里面:
class AjaxResponse
{
public static function toBeJson($msg, $code = 400)
{
return [
'isError' => false,
'isSuccess'=> true,
'msg' => $msg,
'code' => $code,
'data' => [],
];
}
}
这样返回的就是规范之后的响应返回;
https://blog.csdn.net/weixin_38674371/article/details/78459277?locationNum=1&fps=1
lavarel 响应宏的更多相关文章
- lumen 响应宏
响应宏 laravel 中的响应宏,说明文档中有,lumen的没有找到.于是参考laravel 项目中的响应宏写了个Lumen的 1. 新建文件 App\Providers\ResponseMacro ...
- HTTP层 —— 响应
1.创建响应 字符串&数组 所有路由和控制器都会返回一个被发送到用户浏览器的响应,Laravel 提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串,框架会将这 ...
- laravel基础课程---8、laravel响应和视图(响应是什么)
laravel基础课程---8.laravel响应和视图(响应是什么) 一.总结 一句话总结: 就是向请求返回的响应数据(一般为html(视图),当然也可以是变量值):所有的路由及控制器必须返回某个类 ...
- Laravel5.1学习笔记6 响应
基本响应 附加头信息到响应 附加Cookie到响应 其他响应 View视图响应 JSON响应 File下载 重定向 重定向到命名路由 重定向到控制器Action 附带闪回Session数据重定向 响应 ...
- legend3---3、lavarel页面post请求错误之后跳转
legend3---3.lavarel页面post请求错误之后跳转 一.总结 一句话总结: 控制器:return back()->withInput()->with('error','验证 ...
- MFC绘图
//20171/121 两点一线 比如鼠标左击和鼠标弹起的两个消息 然后响应从而获取一条线2 添加响应函数方法 类图->右击->addwindowsmessage3 Dview和main中 ...
- laravel中用到的ServiceProvide
路由 全局限制 如果你希望路由参数可以总是遵循正则表达式,则可以使用 pattern 方法.你应该在 RouteServiceProvider 的 boot 方法里定义这些模式: 1 2 3 4 5 ...
- 黑马lavarel教程---11、响应处理
黑马lavarel教程---11.响应处理 一.总结 一句话总结: 如果在昂扬状态,看学习视频和运动时间重合,会很舒服 1.jquery的$.post参数为什么不需要占位? 因为每个参数的类型不同,可 ...
- iOS开发--Swift RAC响应式编程初探
时间不是很充足, 先少说点, RAC的好处是响应式编程, 不需要自己去设置代理委托, target, 而是主要以信息流(signal), block为主, 看到这里激动吧, 它可以帮你监听你的事件, ...
随机推荐
- C# 模拟POST上传图片
做到一个上传图片的需求,网页已经可以了,模拟网页在客户端上传图片,试了很多次都没成功, 最后发现是少了一个换行符,而且是网页上的字符全部一字不漏的转换成文件流,上传. 先看下网页下的完整请求: 前面这 ...
- Freckles (最小生成树)
#include<iostream> #include<cstring> #include<stdio.h> #include<queue> #incl ...
- 模拟退火解TSP问题MATLAB代码
分别把前四个函数存成m文件,再运行最后一个. swap.m function [ newpath , position ] = swap( oldpath , number ) % 对 oldpath ...
- 使用Webpack的代码分离实现Vue懒加载
当一个Vue的项目体积变得十分庞大的时候,使用Webpack的代码分离功能将Vue Components,routes或Vuex的代码进行分离并按需加载,会极大的提高App的首屏加载速度. 在Vue的 ...
- 重温 Webpack, Babel 和 React
开始之前 在书写文章之前,我假设大家已经有了 JavaScript,Node 包管理工具,Linux 终端操作 这些基本技能,接下来,我将一步一步指引大家从头搭建一个 React 项目 最终实现的效果 ...
- BZOJ 3057圣主的考验题解
老师居然考这么毒瘤的题目!!!!! 很容易想到dp,f[i][j]表示有i个节点,左子树的最深深度为j的方案数 枚举左子树有多少节点然后转移,复杂度为n^3 T飞~ 我们考虑到有深度为h的树的节点有多 ...
- SPSS统计基础-均值功能的使用
SPSS统计基础-均值功能的使用 均值过程计算一个或多个自变量类别中因变量的子组均值和相关的单变量统计.您也可以获得单因素方差分析.eta 和线性相关检验. 统计量.合计.个案数.均值.中位数.组内中 ...
- spring boot + mybatis 访问 neo4j
之前有通过rest的风格去访问,但是每次需要访问时候将statement一并加入header中去数据库执行,方式简单.且思路清晰,但是不便于形成模板调用,固采用mybaits来集成. 1.关键pom. ...
- Python小技巧整理
一.python小工具: 1.内置下载和网站: 进入相应目录:2.x python -m SimpleHTTPServer 3.x python -m http.server 2.字符串转换为JSON ...
- Python学习之路5☞文件处理
一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 正趣果上果 Interesting fruit fruit 词:郭婞 曲:陈粒 编曲/混音/和声:燕池 萧: ...