Laravel8 快速入门教程八 - BLog 控制器层业务处理

130 阅读2分钟

本文由 简悦 SimpRead 转码, 原文地址 juejin.cn

「这是我参与 11 月更文挑战的第 4 天,活动详情查看:2021 最后一次更文挑战

背景

  1. 项目用 Thinkphp5.1 开发完成,对于各种关系模型的查询 Tp 处理起来还是比较吃力的。
  2. 作为努力奔跑的程序员,下一个项目我们决定用 Lavarel 进行开发。
  3. 因为掘金粑粑有奖励,所以把部分 gitee 上的私有的部分学习笔记整理一下。

说明

Laravel 属于中大型框架,各种功能都被内置了,而且 Laravel 官方的文档看的我是云里雾里的,对于新手感觉不是很友好。所以此系列文章只适合有 PHP 基础。想快速入门搞开发的

正文

上一节我们提取了扩展性非常高的 Service 层,这里我们就需要在控制器中完成相关操作。

    /**
     * 获取列表数据
     */
    public function index(){
        $blogService = new BlogService();

        return $blogService->getList(['status'=>1]); //取审核通过的
    }


调用 service 层以后,访问 url http://localhost:8000/blog

即可得到我们想要的数据。

扩展内容

但是我们获取到的是直接的数据,没有状态码。所以我们需要为 Controller 提取专门的通用返回的方法。

在公共的控制器 app\Http\Controllers\Controller.php 中添加代码

    /**

     * 成功返回

     */

    public function success($data = [], $message = 'ok', $status = 1, $code=200){

        $res = [

            'status'=>$status,

            'msg'=>$message,

            'data' => $status != 0 ? $data : []

        ];



        return response()->json($res,$code);

    }



    /**

     * 失败返回

     */

    public function fail($message = 'fail' ,$status = 1, $code=200){

        $res = [

            'status'=>$status,

            'msg'=>$message,

        ];



        return response()->json($res,$code);

    }


此时,刚才的 index 中返回代码进行调整

    /**
     * 获取列表数据
     */
    public function index(){
        $blogService = new BlogService();
        $res = $blogService->getList();

        return  $this->success($res);
    }


此时的返回数据中就携带了,状态码,提示信息等数据。

温馨提示

基类控制器中的成功返回跟失败返回的状态码不应该是写死的。应该是有配置文件 或者单独文件中定义的。这样就可以保证如果换状态码啥的,改改配置文件就行。因为这里单纯只是几个简单的接口,所以没有进行提取。