Ejemplo n.º 1
0
 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;
 }