首页 > 代码库 > 李炎恢ThinkPHP讲义ThinkPHP--自动完成[14]

李炎恢ThinkPHP讲义ThinkPHP--自动完成[14]

C层:

public function login_two(){
        $person =D(‘Person‘);
        $data[‘user_id‘] = ‘28‘;
        $data[‘name‘] = ‘‘;
        $data[‘password‘] = ‘111111‘;
        //$data[‘repassword‘] = ‘12345‘;
        if($person->create($data)){
            $person->save();
        }else { 
            var_dump($person->getError()); 
        }
    }

M层:

//自动完成
    protected $_auto =array(
        //string类型 可省略后面两个
        array(‘remark‘,‘备注‘),
        //function,给密码加密,加密类型为sha1,sha1函数PHP内置(sha1是数字’1‘不是字母’l‘)
        array(‘password‘, ‘sha1‘, 3, ‘function‘),
        //把email字段的值填充到user字段 
        array(‘remark‘, ‘name‘, 3, ‘field‘),
        //callback,自定义方法如:给用户名加前缀
        array(‘name‘,‘updatename‘,3,‘callback‘,‘hotel_‘),
        //ignore,用于修改时密码留空时,忽略修改 
        array(‘name‘, ‘‘, 2, ‘ignore‘),
    );
    //自定义回调函数
        protected function updatename($str,$prefix){
            return $prefix.$str;
        }

自动完成的意义(不明觉厉。。。):

自动完成是ThinkPHP提供用来完成数据自动处理和过滤的方法,使用create方法创建数据对象的时候会自动完成数据处理。

因此,在ThinkPHP使用create方法来创建数据对象是更加安全的方式,而不是直接通过add或者save方法实现数据写入。

李炎恢ThinkPHP讲义ThinkPHP--自动完成[14]