自动完成$_auto的信息没有写入到数据库中的解决方法

浏览:1441 发布日期:2015/10/29 分类:技术分享
自动完成$_auto的信息没有写入到数据库中,前两天碰到了这样的问题,解决了,总结一下,希望能够给需要的朋友一些参考:
因为在使用create()自动验证,自动完成后,我还要进行一些子数据处理操作,所以使用$data数组来传递数据,这个$data数据在自动完成前使用到,还要传递到自动完成之后,有一些处理技巧,请仔细看我的注释。

关键代码如下:
CustomController.php//获取表单数据
$data["memo"]=I("post.memo");
$data["userid"]=I("post.userid");
if($data["userid"]==""){
    $this->error("请选择 “用户”");
}
$User = D("Userinfo");
//使用create()自动检测用户信息,并加入自动完成的内容
//插入时检测,数据源指定为$data(默认是$_POST)
$custom=$User->create($data,1);
//检测通过后的数据全部取出要在后面用到,使用$custom保存数据
if($custom!==false){
    //此时$custom中的数据包括了$data的全部有效数据和自动完成的数据    
    //子数据处理操作
    //创建我的客户信息            
    $rec=array();
    $rec['pname']=I("post.pname");
    $rec['pmob']=I("post.pmob");
    //$custom["customid"],此数据要插入到主表Userinfo中
    $custom["customid"] = M("custom")->add($rec);
    //为$custom再新增一些其他数据
    $custom["userid_new"]=session("user_auth.uid");//自动完成好象取不出session
    //保存数据,创建主记录
    //使用的数据源是$custom
    $result = $User->add($custom); 
    if(false !== $result){
        $this->success("新记录创建成功!",U("userInfo",array("id"=>$result)));
    }else{
        $this->error("记录创建失败,请稍后再试!");
    }                
}else{
    $this->error($User->getError());
}
UserinfoModel.php    protected $_validate=array(
        array('memo','require','请填写 “注释”!'),            
    );
    protected $_auto = array(
        //这是要自动完成的数据,没找到解决方法之前怎么也插入不到数据库中,害死人啊!!
        array('user_no', '333', self::MODEL_INSERT),
        array('status', 1, self::MODEL_INSERT),
        array('addtime', NOW_TIME, self::MODEL_INSERT),
    );
(完)
最佳答案
评论( 相关
后面还有条评论,点击查看>>