首页 > 代码库 > ThinkPHP中自动验证失败
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的名字而不是表的名字!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。