ThinkPHP中自动验证失败

Wesley13
• 阅读 622

本人最近刚开始学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的名字而不是表的名字!

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
ThinkPHP 控制器调用模板的流程和项目模板部署步骤
现在主流的MVC框架网站中,控制器接收到页面请求后,通常会调用相应的模板,模板经过渲染之后,内容返回给前台页面,如下面ThinkPHP的一个控制器:shop/home/controller/UserController.class.php<?php namespace Home\Controller;use Th
Wesley13 Wesley13
2年前
thinkphp3.2.3模板渲染支持三元表达式
thinkphp3.2.3模板渲染支持三元表达式{$status?'正常':'错误'}{$info'status'?$info'msg':$info'error'}注意:三元运算符中暂时不支持点语法。如下:           <divclass"modalhidefade"id'myModa
Easter79 Easter79
2年前
TP5框架whereor
whereOr方法Db::table('think_user')where('name','like','%thinkphp')whereOr('title','like','%thinkphp')find();多字段相同条件的OR查询可以简化为如下方式:
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
5个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这