- A+
在 ThinkPHP5 模型(一:模型基类)中,我们介绍了模型的重要性和 一些基本方法,我们将继续对其进行扩展。
查询单条数据返回数组
/** * 查询单条数据 * @param array $map 查询条件 * @param bool $field 查询字段 * @param array $append 追加数组 * @return array 返回数组 */ public function getInfoByMap($map = [], $field = true, $append = [], $order = []) { if (empty($order)) { //默认按主键排序 $order = [$this->primaryKey => 'desc']; } $object = $this->where($map)->field($field)->order($order)->find(); if (!empty($object) && !empty($append)) { $return = $object->append($append); } else { $return = $object; } return empty($return) ? [] : $return->toArray(); }
查询数据列表返回数组
/** * 查询列表 * @param array $map 查询条件 * @param bool $field 查询字段 * @param array $append 追加数据 * @param string $order 排序 * @param string $limit 分页 * @return array 返回数据 */ public function getListByMap($map = [], $field = true, $append = [], $order = '', $limit = '') { if (empty($order)) { //默认按主键排序 $order = [$this->primaryKey => 'desc']; } if (!empty($limit)) { $object_list = $this->where($map)->field($field)->order($order)->limit($limit)->select(); } else { $object_list = $this->where($map)->field($field)->order($order)->select(); } $list = []; if (!empty($object_list)) { foreach ($object_list as $item => $value) { if (!empty($append)) { $list[] = $value->append($append)->toArray(); } else { $list[] = $value->toArray(); } } } return $list; }
查询数据条数(分页)
/** * 查询数据条数 * @param array $map 查询条件 * @return int|string */ public function getCountByMap($map = []) { return $this->where($map)->count(); }
查询单条数据返回对象
/** * 查询单条数据返回对象 * @param array $map 查询条件 * @param bool $field 查询字段 * @param array $append 追加器 * @return object 返回对象 */ public function getObjInfoByMap($map = [], $field = true, $append = []) { $object = $this->where($map)->field($field)->find(); if (!empty($object) && !empty($append)) { return $object->append($append); } else { return $object; } }
批量保存数据
/** * 批量保存数据 * @param $data 数据 * @return bool */ public function batchSaveData($data) { $this->isUpdate(false)->saveAll($data); return true; }
判断数据是否存在否则添加
/** * 判断数据是否存在否则执行添加 * @param $map 判断条件 * @param array $extra_data 额外的数据 * @param boole $is_strict 是否严格判断 true 时,如果数据存在,返回false * @return false|int|mixed */ public function isExistElseAdd($map, $extra_data = [], $is_strict = false) { $info = $this->getInfoByMap($map); if (!empty($info)) { if ($is_strict) return false; return $info[$this->primaryKey]; } else { $data = array_merge($map, $extra_data); return $this->createData($data); } }