在TP5中定義$rule(驗證規則)有兩種方式
方式一:
$rule = [
// 不可以在此處定義空的驗證 如 'name' => '',會導致出現result未定義錯誤
'name' => 'require|max:25',
'age' => 'number|between:1,120',
];
方式二:
$rule = [
'name' => ['require','max'=>25],
'age' => ['number','between'=>'1,120'],
];
如果方式一自定義驗證規則的話,就可以這樣寫
$rule = [
'name' => 'require|max:25|checkName:',
'age' => 'number|between:1,120',
];
protected function checkNmae($value)
{
$value 是name值,可以在此處進行驗證,如正則驗證
}
如果是方式二的話,寫法如下
$rule = [
'name' => ['require','max'=>25,'checkName'=>'$rule參數'],
'age' => ['number','between'=>'1,120'],
'email' => ['require', 'checkUserEmail'=>'qq.com'],
];
protected function checkName($value, $rule)
{
$vaule 是name值,$rule爲上面的$rule參數
}
protected function checkUserEmail($value,$rule)
{
$res = preg_match('/^\w+([-+.]\w+)*@'.$rule.'$/', $value);
if (!$res) {
return '郵箱只能是'.$rule.'域名';
} else {
return true;
}
}