|
|
@@ -249,10 +249,8 @@ class FormHelper extends AppHelper {
|
|
|
}
|
|
|
|
|
|
foreach ($validateProperties as $rule => $validateProp) {
|
|
|
- $parse = $this->_parseRuleRequired($validateProp);
|
|
|
- if ($parse === false) {
|
|
|
- return false;
|
|
|
- } elseif ($parse == null){
|
|
|
+ $isRequired = $this->_isRequiredRule($validateProp);
|
|
|
+ if ($isRequired === false) {
|
|
|
continue;
|
|
|
}
|
|
|
$rule = isset($validateProp['rule']) ? $validateProp['rule'] : false;
|
|
|
@@ -266,6 +264,34 @@ class FormHelper extends AppHelper {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * Checks if the field is required by the 'on' key in validation properties.
|
|
|
+ * If no 'on' key is present in validation props, this method returns true.
|
|
|
+ *
|
|
|
+ * @param array $validateProp
|
|
|
+ * @return mixed. Boolean for required
|
|
|
+ */
|
|
|
+ protected function _isRequiredRule($validateProp) {
|
|
|
+ if (isset($validateProp['on'])) {
|
|
|
+ if (
|
|
|
+ ($validateProp['on'] == 'create' && $this->requestType != 'post') ||
|
|
|
+ ($validateProp['on'] == 'update' && $this->requestType != 'put')
|
|
|
+ ) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ isset($validateProp['allowEmpty']) &&
|
|
|
+ $validateProp['allowEmpty'] === true
|
|
|
+ ) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (isset($validateProp['required']) && empty($validateProp['required'])) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+/**
|
|
|
* Returns false if given form field described by the current entity has no errors.
|
|
|
* Otherwise it returns the validation message
|
|
|
*
|
|
|
@@ -2587,26 +2613,4 @@ class FormHelper extends AppHelper {
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * Checks if the field is required by the 'on' key in validation properties.
|
|
|
- * If no 'on' key is present in validation props, this method returns true.
|
|
|
- *
|
|
|
- * @param array $validateProp
|
|
|
- * @return mixed. Boolean for required, null if create/update does not match
|
|
|
- */
|
|
|
- protected function _parseRuleRequired($validateProp) {
|
|
|
- if (isset($validateProp['on'])) {
|
|
|
- if (
|
|
|
- ($validateProp['on'] == 'create' && $this->requestType != 'post') ||
|
|
|
- ($validateProp['on'] == 'update' && $this->requestType != 'put')
|
|
|
- ) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
- if (isset($validateProp['allowEmpty']) && $validateProp['allowEmpty'] === true) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
}
|