TP 5カスタムルール:配列とその要素を検証する


需要:配列とその配列内のすべての要素を検証この例の検証説明:需要:パラメータの内容を空にしないで、パラメータのタイプは配列で、配列の最大4つの要素のカスタマイズ規則:配列の要素は最長1つの長さで、要素の範囲は大文字A-Dコードの参照コントローラ層です:
$validate = validate('Curriculum');
if (!$validate->scene('get_classify_course')->check($data)) {
	$this->error($validate->getError());
}

ベリファイア・レイヤ:
 'require|array|max:4|checkClassify:      !',
	];

	//     
	protected $message = [
		//                  
		//  
		'course_classify'=>'      !',
	];

	protected $scene = [
		'get_classify_course' => ['course_classify'],
	];

	protected function checkClassify($value, $rule, $data) {
		//    ,  
		// $classify_rules = array('A', 'B', 'C', 'D');
		// foreach ($value as $k => $v) {
		// 	if (!in_array($v, $classify_rules)) {
		// 		return $rule;
		// 	}
		// }
		// return true;

		//   ,     
		foreach ($value as $k => $v) {
			if (!preg_match('/^[A-D]{1}+$/', $v)) {
				return $rule;
			}
		}
		return true;
	}
}

共有:正規表現大全:https://www.cnblogs.com/fozero/p/7868687.htmlTP 5内蔵検証ルール:https://www.cnblogs.com/pcx105/p/7735224.htmlTP 5マニュアル——カスタム検証規則:https://www.kancloud.cn/manual/thinkphp5/129320