+ -
当前位置:首页 → 问答吧 → thinkphp 在表单提交的时候 用create 方法搞不出来表单数据

thinkphp 在表单提交的时候 用create 方法搞不出来表单数据

时间:2010-10-12

来源:互联网


function save(){
       $Gd=new GaModel();
       $data=$Gd->create();
       dump($data);
}
   他出来的数据就是 array(0){}
  都困扰我几天了
  麻烦高手解决哈

  
[ 此帖被373399571在2010-10-12 22:08重新编辑 ]

作者: 373399571   发布时间: 2010-10-12

你就不能先看看create方法的源码?

复制代码
  1.     /**
  2.      +----------------------------------------------------------
  3.      * 创建数据对象 但不保存到数据库
  4.      +----------------------------------------------------------
  5.      * @access public
  6.      +----------------------------------------------------------
  7.      * @param mixed $data 创建数据
  8.      * @param string $type 状态
  9.      +----------------------------------------------------------
  10.      * @return mixed
  11.      +----------------------------------------------------------
  12.      */
  13.      public function create($data='',$type='') {
  14.         // 如果没有传值默认取POST数据
  15.         if(empty($data)) {
  16.             $data    =   $_POST;
  17.         }elseif(is_object($data)){
  18.             $data   =   get_object_vars($data);
  19.         }elseif(!is_array($data)){
  20.             $this->error = L('_DATA_TYPE_INVALID_');
  21.             return false;
  22.         }
  23.         // 状态
  24.         $type = $type?$type:(!empty($data[$this->getPk()])?self::MODEL_UPDATE:self::MODEL_INSERT);
  25.         // 表单令牌验证
  26.         if(C('TOKEN_ON') && !$this->autoCheckToken($data)) {
  27.             $this->error = L('_TOKEN_ERROR_');
  28.             return false;
  29.         }
  30.         // 数据自动验证
  31.         if(!$this->autoValidation($data,$type)) return false;
  32.         // 检查字段映射
  33.         if(!empty($this->_map)) {
  34.             foreach ($this->_map as $key=>$val){
  35.                 if(isset($data[$key])) {
  36.                     $data[$val] =   $data[$key];
  37.                     unset($data[$key]);
  38.                 }
  39.             }
  40.         }
  41.         //检查序列化字段
  42.         if(!empty($this->serializeField)) {
  43.             foreach($this->serializeField as $name){
  44.                 $this->fields = array_merge($this->fields,$name);
  45.             }
  46.         }
  47.         // 验证完成生成数据对象
  48.         $vo   =  array();
  49.         foreach ($this->fields as $key=>$name){
  50.             if(substr($key,0,1)=='_') continue;
  51.             $val = isset($data[$name])?$data[$name]:null;
  52.             //保证赋值有效
  53.             if(!is_null($val)){
  54.                 $vo[$name] = (MAGIC_QUOTES_GPC && is_string($val))?   stripslashes($val)  :  $val;
  55.             }
  56.         }
  57.         // 创建完成对数据进行自动处理
  58.         $this->autoOperation($vo,$type);
  59.         // 赋值当前数据对象
  60.         $this->data =   $vo;
  61.         // 返回创建的数据以供其他调用
  62.         return $vo;
  63.      }

作者: cain   发布时间: 2010-10-13

哥!你是牛人   我看过代码的,但是我依然不晓得在哪里错了
就请你开一下你的尊口给我说一哈
我万分感谢

作者: 373399571   发布时间: 2010-10-13

楼主你解决了没?我也遇到一样的问题了。。。

作者: ly710   发布时间: 2013-03-03

热门下载

更多