TP5自定义基础控制器类及其继承使用简明示例

步骤一、

我们先在admin模块controller目录下创建并自定义一个基础控制器类,

它继承think的controller类:

 

where(['username' => US])->value('status');
            if ($user== 2 || $user== -1) $this->error('没有权限');

            //获取菜单:
            $this->menu(US);


        } else {

            if (!defined('US')) define('US', 0);
            $this->redirect('user/login');
        }

    }

    /**
     * 菜单获取方法
     */
    protected function menu($user)
    {

        $menu = Db::name('menu')->where(['业务逻辑略过' => $user])->value('menu');

        $this->assign('menu', $menu);
    }
 
   /**
     * 订单详情获取方法
     */
    protected function getOrderDetails($sn)
    {

        $Details = Db::name('ordersDetails')->where(['业务逻辑略过' => $sn])->select();

        return $Details;
    }

 

二、

然后在相同目录下创建Orders类继承base类,

其它继承base类的子类同样都可以使用base类的的getOrderDetails方法:

 

get('sn')) {
            $sn = Request::instance();

            //获取订单基本信息,及订单商品信息:
            $details = $this->getOrderDetails($sn->param()['sn']);

            $this->assign('details', $details);
            $this->assign('url', $sn->header()["referer"]);
            $this->assign('title', '订单 | 订单详情');
            return $this->fetch();
        }

    }

 

三、加需求:

此时如果我们有一个接口类也需要使用base类的getOrderDetails方法,

但是接口请求不是判断权限而是校验身份,也不需要获取菜单,怎么办呢?

方法如下:

 

post()) {

            $this->data = Request::instance()->param();

            $re = array('code' => '9', 'msg' => '身份校验失败,请核对');
            if ('身份校验业务代码略过' != 'OK') {
                echo json_encode($re);
                exit;
            }

        } else {
            $re= array('code' => '6', 'msg' => '非法访问');
            echo json_encode($re);
            exit;
        }
    }

    //接收请求订单号,返回订单信息
    public function returnOrderDetails()
    {

        //通过请求的订单号,使用base类的getOrderDetails方法查询订单信息:
        $Details = $this->getOrderDetails($this->data['sn']);

        $re = array('code' => '3', 'msg' => 'OK', 'data' => $Details);
        $json_string = json_encode($re);
        return $json_string;

    }

 

如此文章对你有帮助,请打开支付宝搜索535149388,领取马云的红包,使用余额宝消费可抵扣,大家好,才是真的好。

更多精彩内容请扫码关注:

TP5自定义基础控制器类及其继承使用简明示例_第1张图片 问虎网络

 

你可能感兴趣的:(TP5自定义基础控制器类及其继承使用简明示例)