Example #1
0
 public static function validate($field, $value, $validation)
 {
     foreach ($validation as $key => $condition) {
         switch ($key) {
             // required
             case 'required':
                 $resultField = self::validateRequired($field, $value, $condition);
                 break;
                 // file
             // file
             case 'image':
                 $resultField = File::validateImage($field, $condition);
                 break;
             case 'document':
                 $resultField = File::validateDocument($field, $condition);
                 break;
                 // type
             // type
             case 'date':
             case 'datetime':
                 $resultField = self::validateDate($field, $value, $condition);
                 break;
             case 'password':
             case 'string':
             case 'richtext':
             case 'text':
                 $resultField = self::validateString($field, $value, $condition);
                 break;
             case 'integer':
             case 'static':
             case 'enum':
             case 'status':
             case 'version':
                 $resultField = self::validateInteger($field, $value, $condition);
                 break;
             case 'multipleKey':
             case 'foreignKey':
             case 'singleKey':
             case 'media':
                 $resultField = self::validateForeignKey($field, $value, $condition);
                 break;
             case 'decimal':
                 $resultField = self::validateNumeric($field, $value, $condition);
                 break;
                 // other
             // other
             case 'exactLength':
                 $resultField = self::validateExactLength($field, $value, $condition);
                 break;
             case 'maxLength':
                 $resultField = self::validateMaxLength($field, $value, $condition);
                 break;
             case 'minLength':
                 $resultField = self::validateMinLength($field, $value, $condition);
                 break;
             case 'letters':
                 $resultField = self::validateLetters($field, $value, $condition);
                 break;
             case 'alphanumeric':
                 $resultField = self::validateAlphaNumeric($field, $value, $condition);
                 break;
             case 'filename':
                 $resultField = self::validateFilename($field, $value, $condition);
                 break;
             case 'username':
             case 'name':
                 $resultField = self::validateName($field, $value, $condition);
                 break;
             case 'url':
                 $resultField = self::validateUrl($field, $value, $condition);
                 break;
             case 'email':
                 $resultField = self::validateEmail($field, $value, $condition);
                 break;
             case 'phone':
                 $resultField = self::validatePhone($field, $value, $condition);
                 break;
             case 'equal':
                 $resultField = self::validateEqual($field, $value, $condition);
                 break;
             case 'different':
                 $resultField = self::validateDifferent($field, $value, $condition);
                 break;
             case 'maxValue':
                 $resultField = self::validateMaxValue($field, $value, $condition);
                 break;
             case 'minValue':
                 $resultField = self::validateMinValue($field, $value, $condition);
                 break;
             default:
                 Log::log(Error::VALIDATION, $key, __FILE__, __LINE__);
                 $resultField = new Field($field);
         }
         if ($resultField->getResult() == ResultType::ERROR) {
             return $resultField;
         }
     }
     return new Field($field);
 }