/**
+----------------------------------------------------------
* 创建数据对象 但不保存到数据库
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param mixed $data 创建数据
* @param string $type 状态
+----------------------------------------------------------
* @return mixed
+----------------------------------------------------------
*/
public function create($data='',$type='') {
// 如果没有传值默认取POST数据
if(empty($data)) {
$data = $_POST;
}elseif(is_object($data)){
$data = get_object_vars($data);
}elseif(!is_array($data)){
$this->error = L('_DATA_TYPE_INVALID_');
return false;
}
// 状态
$type = $type?$type:(!empty($data[$this->getPk()])?self::MODEL_UPDATE:self::MODEL_INSERT);
// 表单令牌验证
if(C('TOKEN_ON') && !$this->autoCheckToken($data)) {
$this->error = L('_TOKEN_ERROR_');
return false;
}
// 数据自动验证
if(!$this->autoValidation($data,$type)) return false;
// 检查字段映射
if(!empty($this->_map)) {
foreach ($this->_map as $key=>$val){
if(isset($data[$key])) {
$data[$val] = $data[$key];
unset($data[$key]);
}
}
}
// 验证完成生成数据对象
$vo = array();
foreach ($this->fields as $key=>$name){
if(substr($key,0,1)=='_') continue;
$val = isset($data[$name])?$data[$name]:null;
//保证赋值有效
if(!is_null($val)){
$vo[$name] = (MAGIC_QUOTES_GPC && is_string($val))? stripslashes($val) : $val;
}
}
// 创建完成对数据进行自动处理
$this->autoOperation($vo,$type);
// 赋值当前数据对象
$this->data = $vo;
// 返回创建的数据以供其他调用
return $vo;
}
分享到:
相关推荐
//其中 video 是表名; //createtime 是字段; // //数据库time字段为时间戳 // //查询当天: $start = date('Y-m-d 00:00:00');...$end = date('Y-m-d H:i:s');...SELECT * FROM `table_name` WHERE `time` >= unix_...
【Thinkphp3.2.3安全开发须知】 在开发基于Thinkphp3.2.3框架的应用时,安全是至关重要的。这篇文档旨在提供一些关键的安全注意事项,帮助开发者避免潜在的安全风险。 首先,理解框架的基本架构是必要的。Thinkphp...
在ThinkPHP框架中,create()方法是用来创建数据对象的一种方式,同时该方法还具备自动验证数据的功能。这一功能允许在插入数据前,对数据的正确性进行验证,以保证数据的准确性和安全性。以下是关于ThinkPHP中create...
1. 数据库设计:首先,我们需要设计数据库表结构,包括文章表(articles),可能包含字段如id、title、content、author、create_time等。此外,可能还需要分类表(categories)用于存储文章类别。 2. 控制器...
thinkphp是一个基于thinkphp6的后台管理系统,对标laravel-admin。 think-admin特色: 1、composer库一键安装,丰富的配置项目 2、根据数据库自动生成增删改查,并生成相应的菜单和权限,减少基础机械重复工作 3、...
本篇将详细介绍如何在ThinkPHP中设置和使用定时器来定时执行任务。 一、定时任务的概念与作用 定时任务,也称为Cron Job,在服务器环境中常用于定期执行某些脚本或程序,以实现自动化工作流程。ThinkPHP中的定时...
通过数据库抽象层支持多种数据库系统,并提供了模型层的CRUD操作,即创建(Create)、读取(Read)、更新(Update)和删除(Delete)。同时,还支持诸如JSON字段、时间查询、子查询等高级查询功能。 在视图和模板...
在ThinkPHP3.1中,可能存在使用了这些已废弃函数的情况,例如`ereg`系列正则函数、`create_function`等,需要替换为`preg`系列和`Closure`。 1. **废弃函数替换**:PHP7中移除了`ereg`系列的正则函数,如`ereg()`、...
在命令行中运行`composer create-project topthink/think <项目名>`,创建一个新的ThinkPHP6项目。接着,设置好项目的目录结构,包括公共、控制器、模型、视图等关键部分。 2. **数据库设计** 抽奖系统的核心数据...
安装 ThinkPHP5 可以通过 Composer 工具进行,开发者只需在项目根目录下运行 `composer create-project topthink/think <your-project-name>` 命令即可。配置文件主要位于 `config` 目录下,包括数据库配置、路由...
- **Composer创建项目**:根据描述,使用`composer create-project topthink/think tp`命令可以创建一个新的ThinkPHP6项目,其中"tp"是项目目录名。 - **环境要求**:确保服务器环境满足PHP7.1+,并且已经安装了...
自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证。 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证,过滤非法字段, 在控制器中使用...
例如,/forum/posts 可能对应显示帖子列表,/forum/post/create 对应创建新帖子等。 6. **模板引擎**:ThinkPHP使用了模板引擎处理视图层,使得开发者可以专注于HTML布局,而无需过多关注PHP代码。模板引擎支持变量...
通过模型类,可以直接进行CRUD(Create, Read, Update, Delete)操作,减少直接写SQL的繁琐。 八、错误处理与日志记录 在开发过程中,错误处理和日志记录至关重要。ThinkPHP提供了异常处理机制和日志系统,能够有效...
开发者可以通过Composer进行安装,通过命令行输入`composer create-project thinkphp/app myapp`创建一个新的ThinkPHP6项目。配置文件主要位于项目的`config`目录下,包括应用配置、数据库配置、路由配置等,支持热...
ActiveRecord模式使得模型可以直接映射到数据库表,通过简单的CRUD(Create, Read, Update, Delete)操作即可完成数据处理。 模板引擎(Template Engine)是ThinkPHP5中的另一亮点,它提供了强大的模板语法,如变量、...
CREATE TABLE `tp_user` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(100) NOT NULL, ... ); ``` #### 四、控制器与模型的使用 - **控制器...
2. 在命令行中运行`composer create-project topthink/think your_project_name`,其中`your_project_name`是你的项目名。 3. Composer会自动下载并安装ThinkPHP6.0.2及其依赖到指定目录。 在ThinkPHP6.0.2中,路由...
由于工作原因在thinkPHP的create()方法上遇到了问题,所以跟踪了create(),从而进一步探究了create()方法。原来create()方法原来有两个参数,本文就此作简要说明,需要的朋友可以参考下
通过Composer安装ThinkPHP框架,使用命令`composer create-project topthink/think blog_system`创建一个新的ThinkPHP项目。 3. **项目初始化**:初始化项目后,会生成基本的目录结构,包括app、public、runtime等...