table); } /** * 列表 * @param array $where 查询条件 * @param string $order 排序 * @param string $field 字段 * @param int $offset 偏移量 * @param int $limit 取多少条 * @return array */ public function getList($where = array(), $order = '', $field = '*', $offset = 0, $limit = 15) { $model = $this->getDb(); if ($where) { $model = $model->where($where); } $res['count'] = $model->count(); $res['list'] = array(); if ($res['count'] > 0) { if ($field) { if (is_array($field)) { $model = $model->select($field); } else { $model = $model->select(\DB::raw($field)); } } if ($order) { $model = parent::getOrderByData($model, $order); } if ($offset) { } else { $offset = 0; } if ($limit) { } else { $limit = 15; } $res['list'] = $model->skip($offset)->take($limit)->get(); } return $res; } /** * 分页,用于前端html输出 * @param array $where 查询条件 * @param string $order 排序 * @param string $field 字段 * @param int $limit 每页几条 * @param int $page 当前第几页 * @return array */ public function getPaginate($where = array(), $order = '', $field = '*', $limit = 15) { $res = $this->getDb(); if ($where) { $res = $res->where($where); } if ($field) { if (is_array($field)) { $res = $res->select($field); } else { $res = $res->select(\DB::raw($field)); } } if ($order) { $res = parent::getOrderByData($res, $order); } if ($limit) { } else { $limit = 15; } return $res->paginate($limit); } /** * 查询全部 * @param array $where 查询条件 * @param string $order 排序 * @param string $field 字段 * @param int $limit 取多少条 * @return array */ public function getAll($where = array(), $order = '', $field = '*', $limit = '', $offset = '') { $res = $this->getDb(); if ($where) { $res = $res->where($where); } if ($field) { if (is_array($field)) { $res = $res->select($field); } else { $res = $res->select(\DB::raw($field)); } } if ($order) { $res = parent::getOrderByData($res, $order); } if ($offset) { $res = $res->skip($offset); } if ($limit) { $res = $res->take($limit); } $res = $res->get(); return $res; } /** * 获取一条 * @param array $where 条件 * @param string $field 字段 * @return array */ public function getOne($where, $field = '*') { $res = $this->getDb(); if ($where) { $res = $res->where($where); } if ($field) { if (is_array($field)) { $res = $res->select($field); } else { $res = $res->select(\DB::raw($field)); } } $res = $res->first(); return $res; } /** * 添加 * @param array $data 数据 * @return int */ public function add(array $data, $type = 0) { if ($type == 0) { // 新增单条数据并返回主键值 return self::insertGetId(parent::filterTableColumn($data, $this->table)); } elseif ($type == 1) { /** * 添加单条数据 * $data = ['foo' => 'bar', 'bar' => 'foo']; * 添加多条数据 * $data = [ * ['foo' => 'bar', 'bar' => 'foo'], * ['foo' => 'bar1', 'bar' => 'foo1'], * ['foo' => 'bar2', 'bar' => 'foo2'] * ]; */ return self::insert($data); } } /** * 修改 * @param array $data 数据 * @param array $where 条件 * @return int */ public function edit($data, $where = array()) { $res = $this->getDb(); return $res->where($where)->update(parent::filterTableColumn($data, $this->table)); } /** * 删除 * @param array $where 条件 * @return bool */ public function del($where) { $res = $this->getDb(); $res = $res->where($where)->delete(); return $res; } //获取后台管理员所具有权限的菜单列表 public static function getPermissionsMenu($role_id, $pid = 0, $pad = 0) { $res = []; $where['access.role_id'] = $role_id; $where['menu.pid'] = $pid; $where["menu.status"] = 1; $menu = object_to_array(DB::table('menu') ->join('access', 'access.menu_id', '=', 'menu.id') ->select('menu.*', 'access.role_id') ->where($where) ->orderBy('listorder', 'asc') ->get()); if ($menu) { foreach ($menu as $row) { $row['deep'] = $pad; if ($permissions_menu = self::getPermissionsMenu($role_id, $row['id'], $pad + 1)) { $row['child'] = $permissions_menu; } $res[] = $row; } } return $res; } }