ThinkPHP中自动验证失败
本人最近刚开始学ThinkPHP,在练习的过程中遇到了一些问题。下面是我在进行TP自动验证时遇到的问题!
表名是test_member
Controller代码如下:
<?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代码如下:
<?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。
通过本次教训我总结了TP中使用自动验证时许注意:D方法的参数是Model的名字而不是表的名字!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。