ThinkPHP中自動驗證失敗

本人最近剛開始學ThinkPHP,在練習的過程當中遇到了一些問題。下面是我在進行TP自動驗證時遇到的問題!php

表名是test_membergit

Controller代碼以下:ajax

<?php
namespace Regiter\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $this->display();
    }
    public function register($email="",$password="",$cpassword='',$name="",$phone="",$address=""){
        $rdata = array('email'=>$email,'password'=>$password,'name'=>$name,'phone'=>$phone,'adress'=>$address);
        $User = D("Member");
        if (!$User->create($rdata)){
            // 若是建立失敗 表示驗證沒有經過 輸出錯誤提示信息
            $this->ajaxReturn($User->getError());
        }else{
            //$User->add($rdata);
            $this->success($User->select());
            // 驗證經過 能夠進行其餘數據操做
        }

    }
}

Model代碼以下:ui

<?php
/**
 * Created by PhpStorm.
 * User: BaByDragon
 * Date: 14-8-1
 * Time: 下午2:48
 */
namespace Regiter\Model;
use Think\Model;
class MemberModel extends Model{
    protected $tableName = 'member';
    protected $_validate = array(
        array('email','require','驗證碼必須!'),  // 都有時間都驗證
        array('name','','賬號名稱已經存在!',0,'unique',1),
        array('name','checkName','賬號錯誤!',1,'function',4),  // 只在登陸時候驗證
        array('password','checkPwd','密碼錯誤!',1,'function',4), // 只在登陸時候驗證
    );
}
?>

結果自動驗證怎麼也不成功!最後發現Model文件名錯了!TP模型層的文件名應是表名(駝峯法命名,而且首字母大寫)+.class.php。而我卻寫成了表名+.php。this

經過本次教訓我總結了TP中使用自動驗證時許注意:D方法的參數是Model的名字而不是表的名字!spa

相關文章
相關標籤/搜索