ThinkPHP场景验证的几种写法

发布时间:2024-01-08浏览次数:213 次
ThinkPHP表单验证中的场景验证在编码过程中,是比较常用的,但是不得不说的是官方文档是越来越写的潦草了。以下是我在代码中经常使用的两种调用场景验证的方式:一

ThinkPHP表单验证中的场景验证在编码过程中,是比较常用的,但是不得不说的是官方文档是越来越写的潦草了。以下是我在代码中经常使用的两种调用场景验证的方式:

一、通过validate()方法调用验证类,再通过scene方法调用验证场景。

// 数据验证
try {
	validate(\app\api\validate\User::class)->scene('edit')->check($data);

} catch (ValidateException $e) {
    return api([], $e->getError(), 10002, 400);
}

二、通过$this调用validate方法,以字符串的形式传入验证类

// 数据验证
try {
    $this->validate($data,'\app\api\validate\User.edit');
} catch (ValidateException $e) {
    return api([], $e->getError(), 10002, 400);
}

注意上面的验证类参数为字符串形式。

相对来说,第一种逻辑更清晰一些,但第二种更符合使用习惯一些,毕竟在控制器的基类中,官方已提前处理好了数据验证功能。

扫一扫,在手机上查看