多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#### Model ~~~ $model = new Model(); /** * 获取当前模型的数据库查询对象 * @access public * @param bool $baseQuery 是否调用全局查询范围 * @return Query */ $model->db($baseQuery = true); $this->initialize(); /** * 设置数据对象值 * @access public * @param mixed $data 数据或者属性名 * @param mixed $value 值 * @return $this */ $model->data($data, $value = null); /** * 获取对象原始数据 如果不存在指定字段返回false * @access public * @param string $name 字段名 留空获取全部 * @return mixed * @throws InvalidArgumentException */ $model->getData($name = null); /** * 修改器 设置数据对象值 * @access public * @param string $name 属性名 * @param mixed $value 属性值 * @param array $data 数据 * @return $this */ $model->setAttr($name, $value, $data = []); /** * 自动写入时间戳 * @access public * @param string $name 时间戳字段 * @return mixed */ $this->autoWriteTimestamp($name); /** * 时间日期字段格式化处理 * @access public * @param mixed $time 时间日期表达式 * @param mixed $format 日期格式 * @param bool $timestamp 是否进行时间戳转换 * @return mixed */ $this->formatDateTime($time, $format, $timestamp = false); /** * 数据写入 类型转换 * @access public * @param mixed $value 值 * @param string|array $type 要转换的类型 * @return mixed */ $this->writeTransform($value, $type); // 获取器 获取数据对象的值 $model->getAttr($name); /** * 数据读取 类型转换 * @access public * @param mixed $value 值 * @param string|array $type 要转换的类型 * @return mixed */ $this->readTransform($value, $type); /** * 设置需要追加的输出属性 * @access public * @param array $append 属性列表 * @param bool $override 是否覆盖 * @return $this */ $model->append($append = [], $override = false); /** * 设置附加关联对象的属性 * @access public * @param string $relation 关联方法 * @param string|array $append 追加属性名 * @return $this * @throws Exception */ $model->appendRelationAttr($relation, $append); /** * 设置需要隐藏的输出属性 * @access public * @param array $hidden 属性列表 * @param bool $override 是否覆盖 * @return $this */ $model->hidden($hidden = [], $override = false); /** * 设置需要输出的属性 * @access public * @param array $visible * @param bool $override 是否覆盖 * @return $this */ $model->visible($visible = [], $override = false); /** * 解析隐藏及显示属性 * @access protected * @param array $attrs 属性 * @param array $result 结果集 * @param bool $visible * @return array */ $this->parseAttr($attrs, &$result, $visible = true); /** * 转换子模型对象 * @access protected * @param Model|ModelCollection $model * @param $visible * @param $hidden * @param $key * @return array */ $this->subToArray($model, $visible, $hidden, $key); // 转换当前模型对象为数组 $model->toArray(); /** * 转换当前模型对象为JSON字符串 * @access public * @param integer $options json参数 * @return string */ $model->toJson($options = JSON_UNESCAPED_UNICODE); /** * 转换当前模型数据集为数据集对象 * @access public * @param array|\think\Collection $collection 数据集 * @return \think\Collection */ $model->toCollection($collection); /** * 关联数据一起更新 * @access public * @param mixed $relation 关联 * @return $this */ $model->together($relation); /** * 获取模型对象的主键 * @access public * @param string $name 模型名 * @return mixed */ $model->getPk($name = ''); // 判断一个字段名是否为主键字段 $this->isPk($key); /** * 保存当前数据对象 * @access public * @param array $data 数据 * @param array $where 更新条件 * @param string $sequence 自增序列名 * @return integer|false */ $model->save($data = [], $where = [], $sequence = null); /** * 保存多个数据到当前数据对象 * @access public * @param array $dataSet 数据 * @param boolean $replace 是否自动识别更新和写入 * @return array|false * @throws \Exception */ $model->saveAll($dataSet, $replace = true); /** * 设置允许写入的字段 * @access public * @param mixed $field 允许写入的字段 如果为true只允许写入数据表字段 * @return $this */ $model->allowField($field); /** * 设置只读字段 * @access public * @param mixed $field 只读字段 * @return $this */ $model->readonly($field); /** * 是否为更新数据 * @access public * @param bool $update * @param mixed $where * @return $this */ $model->isUpdate($update = true, $where = null); /** * 数据自动完成 * @access public * @param array $auto 要自动更新的字段列表 * @return void */ $this->autoCompleteData($auto = []); // 删除当前的记录 $model->delete(); /** * 设置自动完成的字段( 规则通过修改器定义) * @access public * @param array $fields 需要自动完成的字段 * @return $this */ $model->auto($fields); /** * 设置字段验证 * @access public * @param array|string|bool $rule 验证规则 true表示自动读取验证器类 * @param array $msg 提示信息 * @param bool $batch 批量验证 * @return $this */ $model->validate($rule = true, $msg = [], $batch = false); /** * 设置验证失败后是否抛出异常 * @access public * @param bool $fail 是否抛出异常 * @return $this */ $model->validateFailException($fail = true); /** * 自动验证数据 * @access protected * @param array $data 验证数据 * @param mixed $rule 验证规则 * @param bool $batch 批量验证 * @return bool */ $this->validateData($data, $rule = null, $batch = null); // 返回模型的错误信息 $this->getError(); /** * 注册回调方法 * @access public * @param string $event 事件名 * @param callable $callback 回调方法 * @param bool $override 是否覆盖 * @return void */ Model::event($event, $callback, $override = false); /** * 触发事件 * @access protected * @param string $event 事件名 * @param mixed $params 传入参数(引用) * @return bool */ $this->trigger($event, &$params); /** * 写入数据 * @access public * @param array $data 数据数组 * @param array|true $field 允许字段 * @return $this */ Model::create($data = [], $field = null); /** * 更新数据 * @access public * @param array $data 数据数组 * @param array $where 更新条件 * @param array|true $field 允许字段 * @return $this */ Model::update($data = [], $where = [], $field = null); /** * 查找单条记录 * @access public * @param mixed $data 主键值或者查询条件(闭包) * @param array|string $with 关联预查询 * @param bool $cache 是否缓存 * @return static * @throws exception\DbException */ Model::get($data = null, $with = [], $cache = false); /** * 查找所有记录 * @access public * @param mixed $data 主键列表或者查询条件(闭包) * @param array|string $with 关联预查询 * @param bool $cache 是否缓存 * @return static[]|false * @throws exception\DbException */ Model::all($data = null, $with = [], $cache = false); /** * 分析查询表达式 * @access public * @param mixed $data 主键列表或者查询条件(闭包) * @param string $with 关联预查询 * @param bool $cache 是否缓存 * @return Query */ Model::parseQuery(&$data, $with, $cache); /** * 删除记录 * @access public * @param mixed $data 主键列表 支持闭包查询条件 * @return integer 成功删除的记录数 */ Model::destroy($data); /** * 命名范围 * @access public * @param string|array|\Closure $name 命名范围名称 逗号分隔 * @internal mixed ...$params 参数调用 * @return Model|Query */ Model::scope($name); // 设置是否使用全局查询范围 Model::useGlobalScope($use); /** * 根据关联条件查询当前模型 * @access public * @param string $relation 关联方法名 * @param mixed $operator 比较操作符 * @param integer $count 个数 * @param string $id 关联表的统计字段 * @return Relation|Query */ Model::has($relation, $operator = '>=', $count = 1, $id = '*'); /** * 根据关联条件查询当前模型 * @access public * @param string $relation 关联方法名 * @param mixed $where 查询条件(数组或者闭包) * @return Relation|Query */ Model::hasWhere($relation, $where = []); /** * 解析模型的完整命名空间 * @access public * @param string $model 模型名(或者完整类名) * @return string */ $this->parseModel($model); /** * 查询当前模型的关联数据 * @access public * @param string|array $relations 关联名 * @return $this */ $model->relationQuery($relations); /** * 预载入关联查询 返回数据集 * @access public * @param array $resultSet 数据集 * @param string $relation 关联名 * @return array */ $model->eagerlyResultSet(&$resultSet, $relation); /** * 预载入关联查询 返回模型对象 * @access public * @param Model $result 数据对象 * @param string $relation 关联名 * @return Model */ $model->eagerlyResult(&$result, $relation); /** * 关联统计 * @access public * @param Model $result 数据对象 * @param string|array $relation 关联名 * @return void */ $model->relationCount(&$result, $relation); /** * 获取模型的默认外键名 * @access public * @param string $name 模型名 * @return string */ $this->getForeignKey($name); /** * HAS ONE 关联定义 * @access public * @param string $model 模型名 * @param string $foreignKey 关联外键 * @param string $localKey 关联主键 * @param array $alias 别名定义(已经废弃) * @param string $joinType JOIN类型 * @return HasOne */ $model->hasOne($model, $foreignKey = '', $localKey = '', $alias = [], $joinType = 'INNER'); /** * BELONGS TO 关联定义 * @access public * @param string $model 模型名 * @param string $foreignKey 关联外键 * @param string $localKey 关联主键 * @param array $alias 别名定义(已经废弃) * @param string $joinType JOIN类型 * @return BelongsTo */ $model->belongsTo($model, $foreignKey = '', $localKey = '', $alias = [], $joinType = 'INNER'); /** * HAS MANY 关联定义 * @access public * @param string $model 模型名 * @param string $foreignKey 关联外键 * @param string $localKey 关联主键 * @return HasMany */ $model->hasMany($model, $foreignKey = '', $localKey = ''); /** * HAS MANY 远程关联定义 * @access public * @param string $model 模型名 * @param string $through 中间模型名 * @param string $foreignKey 关联外键 * @param string $throughKey 关联外键 * @param string $localKey 关联主键 * @return HasManyThrough */ $model->hasManyThrough($model, $through, $foreignKey = '', $throughKey = '', $localKey = ''); /** * BELONGS TO MANY 关联定义 * @access public * @param string $model 模型名 * @param string $table 中间表名 * @param string $foreignKey 关联外键 * @param string $localKey 当前模型关联键 * @return BelongsToMany */ $model->belongsToMany($model, $table = '', $foreignKey = '', $localKey = ''); /** * MORPH MANY 关联定义 * @access public * @param string $model 模型名 * @param string|array $morph 多态字段信息 * @param string $type 多态类型 * @return MorphMany */ $model->morphMany($model, $morph = null, $type = ''); /** * MORPH TO 关联定义 * @access public * @param string|array $morph 多态字段信息 * @param array $alias 多态别名定义 * @return MorphTo */ $model->morphTo($morph = null, $alias = []); $model->__call($method, $args); Model::__callStatic($method, $params); /** * 修改器 设置数据对象的值 * @access public * @param string $name 名称 * @param mixed $value 值 * @return void */ $model->__set($name, $value); /** * 获取器 获取数据对象的值 * @access public * @param string $name 名称 * @return mixed */ $model->__get($name); // 检测数据对象的值 $model->__isset($name); /** * 销毁数据对象的值 * @access public * @param string $name 名称 * @return void */ $model->__unset($name); $model->__toString(); $model->jsonSerialize(); $model->offsetSet($name, $value); $model->offsetExists($name); $model->offsetUnset($name); $model->offsetGet($name); // 解序列化后处理 $model->__wakeup(); // 模型事件快捷方法 Model::beforeInsert($callback, $override = false); Model::afterInsert($callback, $override = false); Model::beforeUpdate($callback, $override = false); Model::afterUpdate($callback, $override = false); Model::beforeWrite($callback, $override = false); Model::afterWrite($callback, $override = false); Model::beforeDelete($callback, $override = false); Model::afterDelete($callback, $override = false); ~~~