💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# model数据业务层 model层用于书写业务逻辑。 ## app下model层结构 ``` ├─model │ article 文章业务 │ express 配送业务 │ games 游戏业务 │ goods 商品业务 │ image 图片处理业务 │ member 会员相关业务 │ order 订单相关业务 │ share 分享相关业务 │ shop 店铺相关业务 │ stat 数据统计业务 │ store 门店自提相关业务 │ system 基础系统相关业务 │ upload 上传相关业务 │ verify 核销相关业务 │ web 网站整体业务 ``` **一,model层书写要继承BaseModel,用于处理数据的返回** ~~~ /** * 文章 */ class Article extends BaseModel { } ~~~ **一,mode层调用数据库需要model(表),用于调用数据库,例如添加文章** ~~~ /** * 添加文章 * @param $data * @return array */ public function addArticle($data) { $data[ 'create_time' ] = time(); model('article')->startTrans(); try { //添加文章 model('article')->add($data); //更新分组文章数等信息 if ($data[ 'status' ] == 1) { model('article_category')->setInc([ [ 'category_id', '=', $data[ 'category_id' ] ] ], 'article_num'); } else { model('article_category')->setInc([ [ 'category_id', '=', $data[ 'category_id' ] ] ], 'article_num'); } model('article')->commit(); return $this->success(); } catch (\Exception $e) { model('article')->rollback(); return $this->error('', $e->getMessage()); } } ~~~ model(表)实际是调用了基础的model类,路径:model/Model.php model类实现了数据表的增删改查,分页列表,关联表查询,统计查询等业务,不需要调用thinkphp的连贯操作,这样书写更加简洁 ~~~ <?php namespace app\model; use think\facade\Db; use think\Validate; use think\facade\Cache; /** * 模型基类 */ class Model { // 查询对象 private static $query_obj = null; protected $table = ''; //验证规则 protected $rule = []; //验证信息 protected $message = []; //验证场景 protected $scene = []; //错误信息 protected $error; protected $is_cache = 1; public function __construct($table = '') { } public function isCache() { } /** * 获取列表数据 * @param array $condition * @param string $field * @param string $order * @param number $page * @param array $join * @param string $group * @param string $limit * @param string $data * @return mixed */ final public function getList($condition = [], $field = true, $order = '', $alias = 'a', $join = [], $group = '', $limit = null); /** * 获取全部数据 */ final public function all(); /** * 获取分页列表数据 * @param unknown $where * @param string $field * @param string $order * @param number $page * @param string $list_rows * @param string $alias * @param unknown $join * @param string $group * @param string $limit */ final public function pageList($condition = [], $field = true, $order = '', $page = 1, $list_rows = PAGE_LIST_ROWS, $alias = 'a', $join = [], $group = null, $limit = null); /** * 获取分页列表数据(按照数量查询分页) * @param unknown $where * @param string $field * @param string $order * @param number $page * @param string $list_rows * @param string $alias * @param unknown $join * @param string $group * @param string $limit */ final public function rawPageList($condition = [], $field = true, $order = '', $page = 1, $list_rows = PAGE_LIST_ROWS, $alias = 'a', $join = [], $group = null, $limit = null); /** * 获取单条数据 * @param array $where * @param string $field * @param string $join * @param string $data * @return mixed */ final public function getInfo($where = [], $field = true, $alias = 'a', $join = null, $data = null); /** * 得到某个字段的值 * @access public * @param array $where 条件 * @param string $field 字段名 * @param mixed $default 默认值 * @param bool $force 强制转为数字类型 * @return mixed */ final public function getValue($where = [], $field = '', $default = null, $force = false); /** * 新增数据 * @param array $data 数据 * @param boolean $is_return_pk 返回自增主键 */ final public function add($data = [], $is_return_pk = true); /** * 新增多条数据 * @param array $data 数据 * @param int $limit 限制插入行数 */ final public function addList($data = [], $limit = null); /** * 更新数据 * @param array $where 条件 * @param array $data 数据 */ final public function update($data = [], $where = []); /** * 删除数据 * @param array $where 条件 */ final public function delete($where = []); /** * 统计数据 * @param array $where 条件 * @param string $type 查询类型 count:统计数量|max:获取最大值|min:获取最小值|avg:获取平均值|sum:获取总和 */ final public function stat($where = [], $type = 'count', $field = 'id'); /** * SQL查询 * @param string $sql * @return mixed */ final public function query($sql = ''); /** * 返回总数 * @param unknown $where */ final public function getCount($where = [], $field = '*', $alias = 'a', $join = null, $group = null); /** * 返回总数 * @param unknown $where */ final public function getSum($where = [], $field = '', $alias = 'a', $join = null); /** * SQL执行 */ final public function execute($sql = ''); /** * 查询第一条数据 * @param array $condition */ final function getFirstData($condition, $field = '*', $order = ""); /** * 查询第一条数据 * @param array $condition */ final function getFirstDataView($condition, $field = '*', $order = "", $alias = 'a', $join = [], $group = null); /** * 事物开启 */ final public function startTrans(); /** * 事物提交 */ final public function commit(); /** * 事物回滚 */ final public function rollback(); /** * 自增数据 * @param array $where * @param $field * @param int $num * @return int * @throws \think\db\exception\DbException */ final public function setInc($where, $field, $num = 1); /** * 自减数据 * @param $where * @param $field * @param int $num * @return int * @throws \think\db\exception\DbException */ final public function setDec($where, $field, $num = 1); /** * 获取最大值 * @param array $where * @param $field * @return mixed */ final public function getMax($where, $field); ~~~