下面給大家講解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('[email protected]'); // 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' => '[email protected]', ]; $validate = new \app\index\validate\User; if (!$validate->check($data)) { dump($validate->getError()); } } }