public static function validationRules($modelConfig, $object = NULL, $quickEdit = false) { $rules = array(); /** @var ModelConfig $modelConfig */ $formFields = $quickEdit ? $modelConfig->getQuickEditFields('all') : $modelConfig->formFields; if ($formFields) { foreach ($formFields as $field) { if ($field->rules && !in_array($field->type, array('file', 'image'))) { $editRules = array(); $addRules = ModelConfig::rulesToArray($field->rules); if ($field->editRules) { $editRules = ModelConfig::rulesToArray($field->editRules); } // If object is set and complete, it means it's being Edited if ($object && $object->id) { $fieldRules = $field->editRules ? $editRules : $addRules; foreach ($fieldRules as &$rule) { $rule = str_replace('{ignoreId}', $object->id, $rule); $rule = str_replace('{addRequired}', '', $rule); } } else { // New object is being created $fieldRules = $addRules; foreach ($fieldRules as &$rule) { $rule = str_replace('{addRequired}', 'required', $rule); } } if (config('gtcms.premium') && $field->langDependent) { foreach (config('gtcmslang.languages') as $lang) { $property = $field->property . "_" . $lang; $rules[$property] = $fieldRules; } } else { $rules[$field->property] = $fieldRules; } } } } return $rules; }