Skip to content

继承

控制器需要继承模块的基础控制器,基础控制器需要继承控制器基类。
以admin模块为例,控制器继承AdminController,文件位置:app/admin/controller/AdminController.php。可以通过$this->adminId获取管理员id,$this->adminInfo获取管理员信息

<?php

namespace app\admin\controller;

use tmcore\base\BaseController;
use think\App;

class AdminController extends BaseController
{
    /**
     * 管理员id
     */
    protected $adminId = 0;

    /**
     * 管理员信息
     */
    protected $adminInfo;

    /**
     * 初始化方法
     * @return bool|mixed
     */
    public function initialize()
    {
        if (isset($this->request->adminInfo) && $this->request->adminInfo) {
            $this->adminInfo = $this->request->adminInfo;
            $this->adminId = $this->request->adminInfo['id'];
        }
    }
}

登陆验证

以admin模块为例,登陆经过中间件进行验证,路由关联中间件

// 权限验证中间件
app/admin/middleware/AuthMiddleware.php

// 登陆验证中间件
app/admin/middleware/LoginMiddleware.php

// 操作日志中间件
app/admin/middleware/OperationLog.php

内置方法

继承了控制器基类的控制器,可以调用以下方法,统一使用$this->方法(参数...)调用

/**
 * 成功返回的json数据
 */
protected function success($data = [], $msg = 'success', $code = 0, $header = [])

/**
 * 失败返回的json数据
 */
protected function error($msg = '', $code = 10000, $data = [], $header = [])

/**
 * 返回json数据
 */
protected function data($data = [],$header = [])

/**
 * URL重定向
 */
protected function redirect($url, $code = 302, $with = [])

/**
 * 获取get请求数据
 */
protected function getData($params = [], $suffix = false)

/**
 * 获取post请求数据
 */
protected function postData($params = [], $suffix = false)

/**
 * 获取delete请求数据
 */
protected function deleteData($params = [], $suffix = false)

/**
 * 获取param请求数据
 */
protected function paramData($params = [], $suffix = false)

控制器调用方法

<?php

namespace app\admin\controller;

use think\response\Json;

class Index extends AdminController

    public function test()
    {
        return $this->success();//返回成功
        return $this->error('请求错误'); //返回失败
        return $this->data($data); //返回数据
        return $this->redirect($url); //重定向
        $params = $this->getData(['id']); //获取get请求数据
        $params = $this->postData([['name', ''],['age', 18]]); //获取post请求数据
        $params = $this->deleteData(); //获取delete请求数据
        $params = $this->paramData(); //获取param请求数据
    }
}

返回值

统一接口返回值的格式和说明

{
    "code": 0,
    "data": {
        "lists": [],
        "page_limit": 15,
        "page_num": 1,
        "page_total": 100,
    },
    "msg": "",
}
字段名称类型必显说明
code状态码int0-成功,非0-错误码
data数据object业务数据
- lists列表数据array数据列表数组内容
- page_limit每页条数int当前每页条数
- page_num页数int当前页数
- page_total总数int数据列表总数
msg提示信息stringsuccess-成功,其他-错误信息

Released under the Apache-2.0 License.