ThinkPHP5.0之執行添加的數據驗證
- 控制器
/**
* 執行添加
*/
public function postInsert(Request $request)
{
// 獲取數據
$data = $request->except(['action', 'repassword', '__token__']);
$data['password'] = md5($data['password']);
$data['status'] = 1;
$data['token'] = $request->param('__token__');
// dump($data);
// 數據驗證
// 將獲取的所有參數進行驗證
$result = $this->validate($request->param(), 'AdminUsers');
// 不符合規則
if (true !== $result) {
// 顯示錯誤信息,阻止頁面提交
$this->error($result);
}
// 執行添加
$res = Db::table("users")->insert($data);
// 判斷
if ($res) {
$this->success('添加成功', '/adminusers/index');
} else {
$this->error('添加失敗');
}
}
- 驗證器類
// 模塊下創建validate目錄,目錄下創建一個控制器的名稱的類
<?php
namespace app\admin\validate;
use think\Validate;
class AdminUsers extends Validate
{
// 驗證規則
protected $rule = [
'username' => 'require|unique:users|regex:[A-Za-z0-9]{4,8}|token',
'password' => 'require|regex:[A-Za-z0-9]{5,18}',
'repassword' => 'require|regex:[A-Za-z0-9]{5,18}|confirm:password',
'email' => 'require|email',
];
// 提示信息
protected $message = [
'username.require' => '用戶名不能爲空',
'username.unique' => '用戶名已被註冊',
'username.regex' => '用戶名格式不正確,4-8位數字字母',
'password.require' => '密碼不能爲空',
'password.regex' => '密碼格式不正確,5-16位數字字母',
'repassword.require' => '確認密碼不能爲空',
'repassword.regex' => '確認密碼格式不正確,5-16位數字字母',
'repassword.confirm' => '兩次密碼不一致',
'email.require' => '郵箱不能爲空',
'email.email' => '郵箱格式不正確',
];
}