首页 > 其他 > 详细

Tp5.1 join的封装以及多表查询

时间:2021-08-09 23:21:29      阅读:22      评论:0      收藏:0      [点我收藏+]

封装代码:

技术分享图片
 /**
     * join查询
     *
     * @param $request
     * @param $data //存放查询条件、字段、排序的 数组
     * @param $data [‘join‘]      连接对象  " 表名 b "
     * @param $data [‘condition‘] 连接条件  " a.id = b.classId "
     * @param $data [‘where‘]     查询条件  " [ a.id => $id ,b.name => ‘test‘ ] "
     * @param $data [‘field‘]     查询字段  " a.id,title,class_id , b.id,name "
     * @param $data [‘order‘]     排序      " a.id desc "
     * @param $type //left right join
     * @param $return 1: 纯数据格式  2: api标准参数格式
     * return
     */
    public function _joinList($request, $data, $type = ‘‘, $return = 2)
    {
        $page = $request->page ?? 1;
        $limit = $request->limit ?? 5;

        $list = self::alias(a)                     //主表为 a
        ->join($data[join], $data[condition] ?? ‘‘, $type)
            ->where($data[where] ?? [a.status => 1])
            ->field($data[field])
            ->order($data[order] ?? a.id desc)
            ->select()->toArray();

        $start = $limit * ($page - 1);
        $data = array_slice($list, $start, $limit);   // 第n页 第n条 数据
        $total = count($list);

        if (!$total)
            failApi(无数据, 0, 204)->send();

        if ($return == 2)
            return arrayApi(count($data), $data, success!!, fail!!, $total);
        else
            return $data;
    }
View Code

 

使用:(三表查询)

技术分享图片
public function list()     // 展示
    {
        $admin = new Admin();

        $data = [
            ‘join‘ => [[‘role b‘,‘a.role_id = b.id‘,‘right‘],[‘admin_log c‘,‘a.id = c.admin_id‘,‘right‘]],
            ‘field‘ => ‘a.username,account,b.title,c.content,c.create_time‘,
            ‘order‘ => ‘c.create_time desc‘
        ];
        $this->request->limit = 10;
        $res = $admin->_joinList($this->request, $data);
        return json($res);
View Code

 

Tp5.1 join的封装以及多表查询

原文:https://www.cnblogs.com/jaychou-/p/15120337.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!