下面thinkphp框架教程栏目将给大家讲解Thinkphp5.1实现邮箱验证问题,希望对需要的朋友有所帮助! 具体问题: 比如我想验证这个email是否合法 我想用TP的自带的验证规则 应该怎样验证呢
下面thinkphp框架教程栏目将给大家讲解Thinkphp5.1实现邮箱验证问题,希望对需要的朋友有所帮助!
具体问题:
比如我想验证这个email是否合法 我想用TP的自带的验证规则 应该怎样验证呢?我看手册上要定义个User类我们定义一个\app\index\validate\User验证器类用于User的验证。 TP框架验证邮箱用户名什么的要这么麻烦吗?这个验证器类要写在哪里呢?跟控制器同级目录下吗?
<?php
namespace app\index\controller;
use think\Controller;
use think\facade\Request;
use think\response;
use think\View;
use think\Validate;
class Register extends Controller
{
public function regcheck(){
$data=input('email');
}
}
?>解决办法:
要单个验证,可以静态调用的哦
// 验证是否有效邮箱地址
use think\facade\Validate;
Validate::isEmail('thinkphp@qq.com'); // true如果验证的东西比较多,建议还是推荐使用验证器
验证器类可以自定义目录,建议放在 \app\index\validate目录下。
验证器类
namespace app\index\validate;
use think\Validate;
class User extends Validate
{
protected $rule = [
'name' => 'require|max:25',
'email' => 'email',
];
protected $message = [
'name.require' => '名称必须',
'name.max' => '名称最多不能超过25个字符',
'email' => '邮箱格式错误',
];
}在控制器里使用:
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
$data = [
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com',
];
$validate = new \app\index\validate\User;
if (!$validate->check($data)) {
dump($validate->getError());
}
}
}
