TP5框架的商城项目-商品基本的增删改查

商品的增删改查下面是公共控制器BaseApi.php,封装了跨域请求以及登录过滤以及登录检测和通用响应的方法。<?phpnamespace app\adminapi\controller;use think\Controller;use think\Request;class BaseApi extends Controller{ // 登录过滤,先定义不需要做登...
摘要由CSDN通过智能技术生成

商品的增删改查

下面是公共控制器BaseApi.php,封装了跨域请求以及登录过滤以及登录检测和通用响应的方法。

<?php

namespace app\adminapi\controller;

use think\Controller;
use think\Request;

class BaseApi extends Controller
{
    // 登录过滤,先定义不需要做登录检测的接口  1、login控制器里面的login方法 2、login控制器里面的captcha方法
    protected $no_login = ['login/login','login/captcha'];

    // 因为所有的后台接口,都需要进行跨域处理,所以把基础跨域处理封装起来
    // 初始化方法(相当于构造方法)
    public function _initialize()
    {
        parent::_initialize();
        //允许的源域名
        header("Access-Control-Allow-Origin: *");
        //允许的请求头信息
        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
        //允许的请求类型
        header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
        // 登录检测
        // $this -> checklogin();
        // 权限检测
        $res = \app\adminapi\logic\AuthLogic::check();
        if(!$res){
            $this->fail('无权访问');
        }
    }

    // 封装一个登录检测的函数
    public function
        try{
            // 判断当前的接口是否需要检测checklogin(){
            // 获取当前控制器,用request()请求对象里面的controller()方法,它能够获取当前访问的控制器名称
            $request = request()->controller();
            // request()请求对象里面的action()方法能获取当前访问的方法名称
            $action = request()->action();
            // 将访问的控制器里面的方法进行拼接,request()请求对象里面对大小写有要求,我们的路径是小写,所以需要转成小写
            $path = strtolower($request . '/' . $action);
            // 再判断$path在不在$no_login里面
            if(in_array($path,$this->no_login)){
                // 如果在,则不需要进行检测
                return;
            }

            // 需要进行检测
            $user_id = \tools\jwt\Token::getUserId();
            if(!$user_id){
                $this -> fail('未登录或token无效');
            }

            //已登录 将用户id存到请求信息中,方便后续接口使用
            $this->request->get(['user_id'  => $user_id]);
            $this->request->post(['user_id' => $user_id]);
        }catch(\Exception $e){
            $this->fail('服务异常,请检查token令牌,403');
        }  
    }

    /**
     * 通用响应
     * @param int $code 错误码
     * @param string $msg 错误描述
     * @param array $data 返回数据
     */
    public function response($code,$msg,$data)
    {
        $res = [
            'code' => $code,
            'msg'  => $msg,
            'data' => $data
        ];
        // 将数据转化为json格式再返回
        // echo json_code($res,JSON_UNESCAPED_UNICODE);die;
        json($res)->send();die;
    }

    /**
     * 失败时响应
     * @param string $msg 错误描述
     * @param int $code 错误码
     */
    public function fail($msg = 'fail',$code = 500)
    {
        // 响应失败时,直接调用通用响应将两个错误响应参数传过去即可
        return $this -> response($code,$msg,[]);
    }

    /**
     * 成功是响应
     * @param array $data 返回数据
     * @param int $code 错误码
     * @param string $msg 错误描述
     */
    public function ok($data=[],$code=200,$msg='success')
    {
        return $this-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值