鍍金池/ 問(wèn)答/PHP/ Thinkphp3.2.3的自動(dòng)驗(yàn)證中的function,沒(méi)有執(zhí)行到方法?

Thinkphp3.2.3的自動(dòng)驗(yàn)證中的function,沒(méi)有執(zhí)行到方法?

這是我寫的代碼,在自動(dòng)驗(yàn)證是發(fā)現(xiàn)等級(jí)字段沒(méi)有執(zhí)行checkLevel這個(gè)方法,然后我查看了Tp的源碼,發(fā)現(xiàn)function這段是空的,請(qǐng)問(wèn)是tp源碼的問(wèn)題還是我寫法上的問(wèn)題?
clipboard.png

clipboard.png

tp源碼
clipboard.png

回答
編輯回答
舊時(shí)光

模型類

<?php
namespace Home\Model;

use Think\Model;

class AdminModel extends Model
{

    // 靜態(tài)驗(yàn)證
    protected $_validate = array(
        array('username', 'require', '用戶名不能為空!'),
        array('password', 'require', '密碼不能為空!'),
        array('level', 'checkLevel', '等級(jí)數(shù)據(jù)錯(cuò)誤!', 0, 'callback'),
        array('email', 'email', '無(wú)效的郵箱格式'),
    );


    public function checkLevel($level)
    {
        if ($level)
        {
            return true;
        }
        return false;
    }
}

控制器類

<?php

namespace Home\Controller;

use Think\Controller;

class AdminController extends Controller
{

    public function addData()
    {
        $data = [
            'username' => 'xiaoming',
            'password' => 'root',
            'email'    => 'test@1.com',
            'level'    => '',
        ];

        $admin = D('Admin');

        if ($admin->create($data))
        {
            echo '數(shù)據(jù)驗(yàn)證成功';
        }
        else
        {
            dump($admin->getError());
        }
    }
}

結(jié)果返回

string(21) "等級(jí)數(shù)據(jù)錯(cuò)誤!"

2017年5月23日 07:21