tp5在模型中使用验证器,报错了,哪里有问题呢?求大牛!

浏览:1329 发布日期:2018/02/28 分类:求助交流
tp5在控制器中对数据进行验证 ,使用了验证器! $data = I('post.');
            $result = $this->validate($data, 'Users.insert'); // 控制器进行数据验证
            if($result == false){
                // 验证失败 输出错误信息
                dump($result);  die();
            }
上面的代码是 控制器中的, 在控制器中进行 验证数据操作<?php
namespace app\admin\validate;
use think\Validate;
class User extends Validate
{
    // 验证规则
    protected $rule = [
        ['level', 'require|number'],
        ['inv_code', 'require|unique'],
    ];

    // 错误信息
    protected $message  = [
        'level.require'    => '会员级别必须填写',
        'level.number'     => '会员级别必须是数字',
        'inv_code.unique'     => '邀请码无效啊',
    ];

    // 验证场景
    protected $scene = [
        'insert'  =>  [
            'level'    =>'require|number',
            'inv_code'    =>'require|unique',
        ],
    ];
}
上面的 代码是 validata文件夹中的代码 , 将文件命名为User.php

然后 运行时 报错了 , 提示如下 :[42S02] PDOException in Mysql.php line 65
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'tpshop2.0.tp_' doesn't exist
        if (false === strpos($tableName, '`')) {
            if (strpos($tableName, '.')) {
                $tableName = str_replace('.', '`.`', $tableName);
            }
            $tableName = '`' . $tableName . '`';
        }
        $sql = 'SHOW COLUMNS FROM ' . $tableName;
        // 调试开始
        $this->debug(true);
        $pdo = $this->linkID->query($sql);
        // 调试结束
        $this->debug(false, $sql);
        $result = $pdo->fetchAll(PDO::FETCH_ASSOC);
        $info   = [];
        if ($result) {
            foreach ($result as $key => $val) {
                $val                 = array_change_key_case($val);
                $info[$val['field']] = [
                    'name'    => $val['field'],
用户表 名叫 tp_users , 但是报错信息显示 表名 出现了问题 ? 我没有找到原因呢?

错误原因 // 验证规则
    protected $rule = [
        ['level', 'require|number'],
        ['inv_code', 'require|unique:users'],   // unique 后面添加数据表名称
    ];
 // 验证场景
    protected $scene = [
        'insert'  =>  [
            'level'    =>'require|number',
            'inv_code'    =>'require|unique:users',// unique 后面添加数据表名称;因为要查询数据库
        ],
    ];
最佳答案
评论( 相关
后面还有条评论,点击查看>>