使用字段映射后,自动验证失效?

浏览:1017 发布日期:2013/03/22 分类:求助交流 关键字: 字段映射 自动验证
不知道为什么使用字段映射之后,自动验证的规则就失效?
尝试过不使用字段映射,自动验证里面填入数据表的字段,功能一切正常~
下面是各模块的关键代码,求各位指导!万分感激!

TP:2.2
PHP Version:5.4.4

HTML表单    <form action="__URL__/login" method="post">
        <p><{$Think.config.APP_COMPANY_NAME}></p>
        <p>后台管理系统</p>
        <p>用户名: <input type="text" name="l_user" /></p>
        <p>密 码: <input type="password" name="l_password" /></p>
        <p>验证码: <input type="captcha" name="captcha" style="width: 65px;"/> <img src="__URL__/captcha" id="captcha_img"/></p>
        <p><input type="submit" value="登陆" /> <input type="reset" value="重新填写" /></p>
    </form>
AdminAction 控制器    public function login()
    {
        $Admin = D('admin');
        if($data = $Admin->create()){
            dump($data);   <=== 开启字段映射后,$data数据是空的
            if($_SESSION['verify']!=md5($_POST['captcha'])) $this->error('验证码错误');
            if($Admin->isLock($data)) $this->error('账号已被锁定');
            if($Admin->isAdmin($data)){
                $Admin->updateLoginInfo($data);
                $_SESSION['admin'] = $Admin->getInfo($Admin->admin_name);
                unset($_SESSION['verify']);
                $this->main();
            }else{
                $this->error('用户名或密码错误!');
            }
        }else{
            $this->error($Admin->getError());
        }
    }
AdminModelclass AdminModel extends Model
{
    protected $_validate = array(
        // 设置为1,验证时始终说用户名不能为空,此时create()返回的data()是空数组
        // 设置为其它值时,验证失效,但create()返回的data有表单中的数据
        array('l_user','require','用户名不能为空!',1),  
        array('l_password','require','密码不能为空!',1),
    );
    
    protected $_auto = array (
        array('admin_password','md5',3,'function'),
    );

     protected $_map = array(
         'l_user'=>'admin_name',
        'l_password'=>'admin_password',
     );
Admin 表字段admin_id ====> int(10) UN PK AI
admin_name ====> varchar(45)
admin_password ====> char(32)
admin_mail ====> varchar(50)
regis_time ====> date
last_login_ip ====> varchar(45)
last_login_date ====> datetime
is_lock ====> enum('0','1')
is_delete ====> enum('0','1')
最佳答案
评论( 相关
后面还有条评论,点击查看>>