`
hoodbc
  • 浏览: 114836 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

thinkphp create()

    博客分类:
  • php
阅读更多
 /**
     +----------------------------------------------------------
     * 创建数据对象 但不保存到数据库
     +----------------------------------------------------------
     * @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;
     }
分享到:
评论

相关推荐

    php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)

    //其中 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安全开发须知】 在开发基于Thinkphp3.2.3框架的应用时,安全是至关重要的。这篇文档旨在提供一些关键的安全注意事项,帮助开发者避免潜在的安全风险。 首先,理解框架的基本架构是必要的。Thinkphp...

    ThinkPHP中create()方法自动验证实例

    在ThinkPHP框架中,create()方法是用来创建数据对象的一种方式,同时该方法还具备自动验证数据的功能。这一功能允许在插入数据前,对数据的正确性进行验证,以保证数据的准确性和安全性。以下是关于ThinkPHP中create...

    ThinkPHP新闻发布系统(前台+后台)绝对易学易用

    1. 数据库设计:首先,我们需要设计数据库表结构,包括文章表(articles),可能包含字段如id、title、content、author、create_time等。此外,可能还需要分类表(categories)用于存储文章类别。 2. 控制器...

    thinkphp后台管理系统

    thinkphp是一个基于thinkphp6的后台管理系统,对标laravel-admin。 think-admin特色: 1、composer库一键安装,丰富的配置项目 2、根据数据库自动生成增删改查,并生成相应的菜单和权限,减少基础机械重复工作 3、...

    基于thinkphp框架的定时器(定时执行任务)

    本篇将详细介绍如何在ThinkPHP中设置和使用定时器来定时执行任务。 一、定时任务的概念与作用 定时任务,也称为Cron Job,在服务器环境中常用于定期执行某些脚本或程序,以实现自动化工作流程。ThinkPHP中的定时...

    ThinkPHP6.0完全开发手册.pdf

    通过数据库抽象层支持多种数据库系统,并提供了模型层的CRUD操作,即创建(Create)、读取(Read)、更新(Update)和删除(Delete)。同时,还支持诸如JSON字段、时间查询、子查询等高级查询功能。 在视图和模板...

    ThinkPHP3.1修改支持php7

    在ThinkPHP3.1中,可能存在使用了这些已废弃函数的情况,例如`ereg`系列正则函数、`create_function`等,需要替换为`preg`系列和`Closure`。 1. **废弃函数替换**:PHP7中移除了`ereg`系列的正则函数,如`ereg()`、...

    thinkPHP6简单抽奖系统

    在命令行中运行`composer create-project topthink/think <项目名>`,创建一个新的ThinkPHP6项目。接着,设置好项目的目录结构,包括公共、控制器、模型、视图等关键部分。 2. **数据库设计** 抽奖系统的核心数据...

    thinkphp5.chm

    安装 ThinkPHP5 可以通过 Composer 工具进行,开发者只需在项目根目录下运行 `composer create-project topthink/think <your-project-name>` 命令即可。配置文件主要位于 `config` 目录下,包括数据库配置、路由...

    ThinkPHP6.zip

    - **Composer创建项目**:根据描述,使用`composer create-project topthink/think tp`命令可以创建一个新的ThinkPHP6项目,其中"tp"是项目目录名。 - **环境要求**:确保服务器环境满足PHP7.1+,并且已经安装了...

    ThinkPHP中create()方法自动验证表单信息

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证。 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证,过滤非法字段, 在控制器中使用...

    ThinkPHP在线校园论坛网站源码案例设计.zip

    例如,/forum/posts 可能对应显示帖子列表,/forum/post/create 对应创建新帖子等。 6. **模板引擎**:ThinkPHP使用了模板引擎处理视图层,使得开发者可以专注于HTML布局,而无需过多关注PHP代码。模板引擎支持变量...

    thinkphp前台后台网站源码

    通过模型类,可以直接进行CRUD(Create, Read, Update, Delete)操作,减少直接写SQL的繁琐。 八、错误处理与日志记录 在开发过程中,错误处理和日志记录至关重要。ThinkPHP提供了异常处理机制和日志系统,能够有效...

    ThinkPHP6.0完全开发手册-11231344.pdf.zip

    开发者可以通过Composer进行安装,通过命令行输入`composer create-project thinkphp/app myapp`创建一个新的ThinkPHP6项目。配置文件主要位于项目的`config`目录下,包括应用配置、数据库配置、路由配置等,支持热...

    thinkphp5完全框架

    ActiveRecord模式使得模型可以直接映射到数据库表,通过简单的CRUD(Create, Read, Update, Delete)操作即可完成数据处理。 模板引擎(Template Engine)是ThinkPHP5中的另一亮点,它提供了强大的模板语法,如变量、...

    php框架ThinkPHP代码分析核心解析

    CREATE TABLE `tp_user` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(100) NOT NULL, ... ); ``` #### 四、控制器与模型的使用 - **控制器...

    ThinkPHP6.0.2官方原版.zip

    2. 在命令行中运行`composer create-project topthink/think your_project_name`,其中`your_project_name`是你的项目名。 3. Composer会自动下载并安装ThinkPHP6.0.2及其依赖到指定目录。 在ThinkPHP6.0.2中,路由...

    Thinkphp中Create方法深入探究

    由于工作原因在thinkPHP的create()方法上遇到了问题,所以跟踪了create(),从而进一步探究了create()方法。原来create()方法原来有两个参数,本文就此作简要说明,需要的朋友可以参考下

    thinkPHP写的博客系统

    通过Composer安装ThinkPHP框架,使用命令`composer create-project topthink/think blog_system`创建一个新的ThinkPHP项目。 3. **项目初始化**:初始化项目后,会生成基本的目录结构,包括app、public、runtime等...

Global site tag (gtag.js) - Google Analytics