精华内容
下载资源
问答
  • 分享给大家供大家参考,具体如下:1、背景:需要将所有的数据返回格式统一成retCode/retMsg/data2、登陆接口:文件目录:app/Http/Controllers/Auth/LoginController先写登陆接口是因为修改登录接口比注册接口要简单...

    本文实例讲述了Laravel框架实现修改登录和注册接口数据返回格式的方法。分享给大家供大家参考,具体如下:

    1、背景:需要将所有的数据返回格式统一成retCode/retMsg/data

    2、登陆接口:

    文件目录:app/Http/Controllers/Auth/LoginController

    先写登陆接口是因为修改登录接口比注册接口要简单许多

    登录接口中的第一句

    use AuthenticatesUsers;

    可以进去修改登录验证内容(默认是email+password登录),可以修改

    validateLogin()或者直接修改username(),将email改成name,即可用name+password登录了

    修改登录接口数据返回格式login()方法

    public function login(Request $request)

    {

    $this->validateLogin($request);

    if ($this->attemptLogin($request)) {

    $user = $this->guard()->user();

    $user->generateToken();

    $ret=new RetObject();

    $ret->retCode="0000";

    $ret->retMsg='success';

    $ret->data= $user->toArray();

    }else{

    $ret=new RetObject();

    $ret->retCode="0001";

    $ret->retMsg='failed';

    $ret->data= null;

    }

    return response()->json($ret);

    }

    直接修改login方法中的返回内容就可以了

    3、注册接口

    一开始我都不知道register的接口到底是藏在哪

    然后看routes/api.php里的

    Route::post('register', 'Auth\RegisterController@register');

    这里register接口指向的是RegisterController中的 register方法

    但是在RegisterController没有找到register方法,只有registered、validator、create这几个方法

    真正的register方法在第一句的

    use RegistersUsers;

    RegistersUsers的register

    public function register(Request $request)

    {

    $this->validator($request->all())->validate();

    event(new Registered($user = $this->create($request->all())));

    $this->guard()->login($user);

    return $this->registered($request, $user)

    ?: redirect($this->redirectPath());

    }

    这里用到了RegisterController  中的registered、validator、create这几个方法

    成功的情况下,修改数据返回格式比较简单

    直接在RegisterController中的registered()方法中修改

    protected function registered(Request $request,$user)

    {

    $user->generateToken();

    $ret=new RetObject();

    $ret->retCode="0000";

    $ret->retMsg='register success';

    $ret->data= $user->toArray();

    return response()->json($ret);

    }

    然后在哪里捕捉异常然后失败的时候修改数据返回格式,捣鼓了好久。

    一开始尝试直接在RegisterController中的registered()方法中使用try/catch捕捉异常信息,但是每次Debug都不会跳进来,直接在更底层验证的时候就直接输出报错信息了。

    try{

    $user->generateToken();

    $ret=new RetObject();

    $ret->retCode="0000";

    $ret->retMsg='register success';

    $ret->data= $user->toArray();

    return response()->json($ret);

    }catch (Exception $exception){

    $ret=new RetObject();

    $ret->retCode="0001";

    $ret->retMsg='register failed';

    $ret->data= null;

    return response()->json($ret);

    }

    最终在app/Exception/Handler.php中

    report方法是用来将异常写入日志,render是用来渲染各种异常的浏览器输出

    所以我们应该是在render中修改捕捉到异常之后返回数据的格式

    public function render($request, Exception $exception)

    {

    // This will replace our 404 response with

    // a JSON response.

    if ($exception instanceof ModelNotFoundException &&

    $request->wantsJson())

    {

    $ret=new RetObject();

    $ret->retCode="404";

    $ret->retMsg='页面未找到';

    $ret->data= null;

    return response()->json($ret);

    }elseif ($exception instanceof ValidationException)

    {

    $ret=new RetObject();

    $ret->retCode="0001";

    $ret->retMsg=$exception->getMessage();

    $ret->data= null;

    return response()->json($ret);

    }

    return parent::render($request, $exception);

    }

    然后起码是可以自定义捕捉到验证数据异常ValidationException 时候的返回数据格式了,还有其他的异常也是可以直接在Handler.php的render方法中添加。

    补充一下Handler的异常处理的控制器基类:目录为vendor/laravel/framework/src/Illuminate/Foundation/Exception/Handler.php

    中的report和render方法

    public function report(Exception $e)

    {

    if ($this->shouldntReport($e)) {

    return;

    }

    try {

    $logger = $this->container->make(LoggerInterface::class);

    } catch (Exception $ex) {

    throw $e; // throw the original exception

    }

    $logger->error($e);

    }

    public function render($request, Exception $e)

    {

    $e = $this->prepareException($e);

    if ($e instanceof HttpResponseException) {

    return $e->getResponse();

    } elseif ($e instanceof AuthenticationException) {

    return $this->unauthenticated($request, $e);

    } elseif ($e instanceof ValidationException) {

    return $this->convertValidationExceptionToResponse($e, $request);

    }

    return $this->prepareResponse($request, $e);

    }

    希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

    展开全文
  • 在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d:back中。显示的注释提示您另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。 6.Call 命令 从一个批处理程序调用...
  • QT中文乱码解决方法

    2016-04-11 20:27:00
    1、所有文件编码格式须一致 不统一的话,很可能出现部分中文显示正常,部分是乱码的情况。这个我是让男票用editplus统一修改了编码格式。文件只要是自己生成的,一般都是一样的,但是也不排除某个cpp文件借鉴他人...

    由于我毕设的界面是用Qt做的,之前没怎么接触过Qt,所以实现过程中遇到不少小问题,头一个就是这个。

    现如今宝宝将其记录下来,供同样有需要的同学或者自己以后方便查阅。

    1、所有文件编码格式须一致

    不统一的话,很可能出现部分中文显示正常,部分是乱码的情况。这个我是让男票用editplus统一修改了编码格式。文件只要是自己生成的,一般都是一样的,但是也不排除某个cpp文件借鉴他人导致格式不统一。至于如何用editplus修改文件的编码格式,网上资料也不少,大家百度一下即可。

    2、添加代码和头文件

    我添加在了main函数中

    #include <QTextCodec>  //头文件
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));

    或者

    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));

    据大神说上面那一句话要比下面那四句代码稍微靠谱点,我试了两种方法都可实现。

     

    转载于:https://www.cnblogs.com/JJJanepp/p/5380026.html

    展开全文
  • 45、修正了文章发表成功后,再修改文章其选择为待审。提示操作成功。但未成功的问题 46、修正了member_cache表和member数据条数不一致的时候,导致全站白屏问题 47、修正了专题的动态设置无效设置生成静态为“否”...
  • 45、修正了文章发表成功后,再修改文章其选择为待审。提示操作成功。但未成功的问题 46、修正了member_cache表和member数据条数不一致的时候,导致全站白屏问题 47、修正了专题的动态设置无效设置生成静态为“否”...
  • 45、 修正了文章发表成功后,再修改文章其选择为待审。提示操作成功。但未成功的问题 46、 修正了 member_cache 表和 member 数据条数不一致的时候,导致全站白屏问题 47、 修正了专题的动态设置无效 设置生成...
  •  修改图片名称、评分或者添加备注时,可以针对该图片在其它节点下的链接图片,进行统一更改,当然也可以不统一更改;  允许节点标题就地编辑,类似于Windows 资源管理器一样,通过在已经获取焦点的节点上再点击...
  • Visual Studio程序员箴言--详细书签版

    热门讨论 2012-10-16 20:37:39
    技巧4.7 使用Ctrl+Tab键打开IDE导航器,快速查看并浏览所有打开的文件和工具窗口 76 技巧4.8 禁用IDE导航器 76 4.1.3 键盘导航 77 技巧4.9 使用Ctrl+F6键和Ctrl+Shift+F6键在打开的文档窗口间导航 78 技巧...
  • 安装方法:请升级版的1#盘插入软驱,在Win9x系统下运行1#盘的"Setup"文件,系统会自动提示请您输入安装路径(升级用户请输入旧版《管家婆》所在路径如C\:grasp)确认路径输入后,系统进一步提示请选择“升级安装”...
  • 然后,在主程序界面的 Form_Load 事件中,读取配置文件所有 key 值,填充 cbbMediaType 组合框控 件: 程序代码 public void Form_Load(object sender, EventArgs e) { cbbMediaType.Items.Clear(); foreach ...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    C#--微软.NET的第一语言 ... 在本章中你了解 Microsoft.NET 的概念 .NET 框架 C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 ...
  • C#微软培训资料

    2014-01-22 14:10:17
    <<page 1>> page begin==================== 目 目目 目 录 录录 ... 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都成为值得纪念的一天 这一天 微软公司正式推出了其下一代...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    这一联盟会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...
  • 统一使用Mongodb的bson做序列化,消息和配置文件全部都是bson或者json,并且以后使用mongodb做数据库,再也不用做格式转换了。 d.提供一个强大的ai行为树工具 e.提供一个同步工具 f.提供命令行配置工具,配置分布式...
  • export 指令会组件的元数据和文件内容的拷贝推送到远程仓库。具体命令:<code>bit export [remoteScopeName]。 </li></ul> 使用组件 当组件被推送到服务器上的远程仓库,其他本地的 Bit WorkSpace 就...
  • asp.net知识库

    2015-06-18 08:45:45
    HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的...
  • 3.6.1 利用vi创建和修改文件 46 3.6.2 用head和tail命令移动 47 3.7 文本的提取和排序 48 3.7.1 使用grep匹配模式 48 3.7.2 剪切、粘贴和联结文本 49 3.8 shell脚本 50 3.8.1 shell程序介绍 51 3.8.2...
  • 首先是操作系统的名字改变了,原因在于虽然我们的试验性 OS从前辈们那里借鉴了很多东西,但其各个部分的设计(比如文件系统和内存管理)往往有其独特之处,所以我原先的 Tinix(本意为 TryMinix)改成了新名字...
  • 首先是操作系统的名字改变了,原因在于虽然我们的试验性 OS从前辈们那里借鉴了很多东西,但其各个部分的设计(比如文件系统和内存管理)往往有其独特之处,所以我原先的 Tinix(本意为 TryMinix)改成了新名字...
  • About July的新书《编程之法:面试和算法心得》纸质版...任何你想做的事情,包括痛批你觉得写的烂的章节,所有你的意见都改进此系列。 你可以做以上任何一件或几件事情,如遇到任何问题或疑惑,咱们可以随时讨论: ...
  • 下面用了一个方法qiankun需要用到的方法全部包装起来,以便后续注册子应用放到获取后端注册表数据后执行。 /** * @name 启用qiankun微前端应用 * @param {*} list * @param {*} defaultApp */ const ...
  • c#学习笔记.txt

    2008-12-15 14:01:21
    另外他对我上一集中说Microsoft越来越不要脸也极为生气,因为相比之下,Sun也不怎么样,微软已经C#提交设在日内瓦的ECMA(European Computer Manufacturers' Association,国际标准化机构欧洲电子计算机工业会)并...
  •  主要的功能是找一个想看的英文小说或是资料(txt),选择它,让软件处理一下,生成一个叫 EVW 的格式文件,后缀名为 .evw ,内容是三行显示,第一行英文原文,第二行为中文,第三行为音标,第二行和第三行可以隐藏,不显示,...
  • 二十三种设计模式【PDF版】

    热门讨论 2011-05-30 14:13:49
    主要是介绍各种格式流行的软件设计模式,对于程序员的进一步提升起推进作用,有时间可以随便翻翻~~ 23种设计模式汇集 如果你还不了解设计模式是什么的话? 那就先看设计模式引言 ! 学习 GoF 设计模式的重要性 ...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

怎么将所有文件格式统一修改