|
@@ -1,5 +1,35 @@
|
|
|
<?php
|
|
|
namespace Qii\Base;
|
|
|
+
|
|
|
+use Qii\Execptions;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @method bool addRequiredFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addEmailFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addIdCodeFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addHttpFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addQQFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addPostCodeFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addIpFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addPhoneFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addTelephoneFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addMobileFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addEnFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addCnFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addAccoundFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addNumberFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addDateFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addSafeFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addPasswordFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addMaxLengthFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addMinLengthFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addLengthFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addRangeofFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addStringFields(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addSets(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ * @method bool addSetsArray(array $data = [string, string, bool|string|int], array $data=[...]) [string $field string $msg string $extparam],...
|
|
|
+ *
|
|
|
+ */
|
|
|
class Rules
|
|
|
{
|
|
|
/**
|
|
@@ -153,6 +183,49 @@ class Rules
|
|
|
$this->addRules($field, $key, $valid, $message);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加必须验证的字段
|
|
|
+ *
|
|
|
+ * @param array $fields ['field', 'xx不能为空']
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ /*
|
|
|
+ public function addRequiredFields($fields = array()) {
|
|
|
+ if (!is_array($fields)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ foreach ($fields as $value) {
|
|
|
+ if(count($value) == 1) {
|
|
|
+ $value[1] = $value[0] . "字段不能为空";
|
|
|
+ }
|
|
|
+ $this->rules[$value[0]]['required'] = true;
|
|
|
+ $this->message[$value[0]]['required'] = $value[1];
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }*/
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量添加safe验证字段
|
|
|
+ *
|
|
|
+ * @param array $fields [['fields', 'xx不能包含怪字符'], ...]
|
|
|
+ * @return false|void
|
|
|
+ */
|
|
|
+ /*
|
|
|
+ public function addSafeFields($fields = array()) {
|
|
|
+ if (!is_array($fields)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($fields as $value) {
|
|
|
+ if(count($value) == 1) {
|
|
|
+ $value[1] = $value[0] . "字段不能包含怪字符";
|
|
|
+ }
|
|
|
+ $this->rules[$value[0]]['safe'] = true;
|
|
|
+ $this->message[$value[0]]['safe'] = $value[1];
|
|
|
+ }
|
|
|
+ }*/
|
|
|
+
|
|
|
/**
|
|
|
* 添加规则
|
|
|
* @param string $field 验证字段
|
|
@@ -386,4 +459,47 @@ class Rules
|
|
|
);
|
|
|
return in_array($key, $allow);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加验证
|
|
|
+ *
|
|
|
+ * @param string $validKey valid
|
|
|
+ * @param array $args [['field', 'msg', validExtParam],...], make(length, [['field', 'msg', 10], ...])
|
|
|
+ * @return false|void
|
|
|
+ */
|
|
|
+ public function make($validKey, $args) {
|
|
|
+ if(!is_array($args)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ foreach ($args as $value) {
|
|
|
+ if(count($value) == 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(count($value) == 1) {
|
|
|
+ $value[1] = $value[0] .'格式不正确';
|
|
|
+ $value[2] = true;
|
|
|
+ }else if(count($value) == 2) {
|
|
|
+ $value[2] = true;
|
|
|
+ }
|
|
|
+ $this->addRules($value[0], $validKey, $value[2], $value[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 快捷添加验证
|
|
|
+ * @param string $method 验证方法
|
|
|
+ * @param array $args 参数
|
|
|
+ * @return mixed
|
|
|
+ */
|
|
|
+ public function __call($method, $args) {
|
|
|
+ preg_match("/add(.*)Fields/", $method, $matches);
|
|
|
+ if(!$matches || count($matches) < 2) {
|
|
|
+ throw new MethodNotFound($method ." does not found");
|
|
|
+ }
|
|
|
+ $validKey = strtolower($matches[1]);
|
|
|
+ if (!$this->isAllow($validKey)) {
|
|
|
+ throw new MethodNotFound($method ." does not found");
|
|
|
+ }
|
|
|
+ return call_user_func_array(array($this, 'make'), array($validKey, $args));
|
|
|
+ }
|
|
|
}
|